diff options
Diffstat (limited to 'src/test/ui/asm/type-check-1.rs')
-rw-r--r-- | src/test/ui/asm/type-check-1.rs | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/test/ui/asm/type-check-1.rs b/src/test/ui/asm/type-check-1.rs deleted file mode 100644 index 59f7b36af..000000000 --- a/src/test/ui/asm/type-check-1.rs +++ /dev/null @@ -1,79 +0,0 @@ -// needs-asm-support -// ignore-nvptx64 -// ignore-spirv -// ignore-wasm32 - -#![feature(asm_const)] - -use std::arch::{asm, global_asm}; - -fn main() { - unsafe { - // Outputs must be place expressions - - asm!("{}", in(reg) 1 + 2); - asm!("{}", out(reg) 1 + 2); - //~^ ERROR invalid asm output - asm!("{}", inout(reg) 1 + 2); - //~^ ERROR invalid asm output - - // Operands must be sized - - let v: [u64; 3] = [0, 1, 2]; - asm!("{}", in(reg) v[..]); - //~^ ERROR the size for values of type `[u64]` cannot be known at compilation time - //~| ERROR cannot use value of type `[u64]` for inline assembly - asm!("{}", out(reg) v[..]); - //~^ ERROR the size for values of type `[u64]` cannot be known at compilation time - //~| ERROR cannot use value of type `[u64]` for inline assembly - asm!("{}", inout(reg) v[..]); - //~^ ERROR the size for values of type `[u64]` cannot be known at compilation time - //~| ERROR cannot use value of type `[u64]` for inline assembly - - // Constants must be... constant - - let x = 0; - const fn const_foo(x: i32) -> i32 { - x - } - const fn const_bar<T>(x: T) -> T { - x - } - asm!("{}", const x); - //~^ ERROR attempt to use a non-constant value in a constant - asm!("{}", const const_foo(0)); - asm!("{}", const const_foo(x)); - //~^ ERROR attempt to use a non-constant value in a constant - asm!("{}", const const_bar(0)); - asm!("{}", const const_bar(x)); - //~^ ERROR attempt to use a non-constant value in a constant - asm!("{}", sym x); - //~^ ERROR invalid `sym` operand - - // Const operands must be integers and must be constants. - - asm!("{}", const 0); - asm!("{}", const 0i32); - asm!("{}", const 0i128); - asm!("{}", const 0f32); - //~^ ERROR mismatched types - asm!("{}", const 0 as *mut u8); - //~^ ERROR mismatched types - asm!("{}", const &0); - //~^ ERROR mismatched types - } -} - -unsafe fn generic<T>() { - asm!("{}", sym generic::<T>); -} - -// Const operands must be integers and must be constants. - -global_asm!("{}", const 0); -global_asm!("{}", const 0i32); -global_asm!("{}", const 0i128); -global_asm!("{}", const 0f32); -//~^ ERROR mismatched types -global_asm!("{}", const 0 as *mut u8); -//~^ ERROR mismatched types |