summaryrefslogtreecommitdiffstats
path: root/src/test/ui/asm/type-check-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/asm/type-check-1.rs')
-rw-r--r--src/test/ui/asm/type-check-1.rs79
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