make type-check-4 asm tests about non-const expressions
This commit is contained in:
parent
4428a05167
commit
ac2e318034
@ -1,27 +0,0 @@
|
||||
//@ only-aarch64
|
||||
//@ build-fail
|
||||
|
||||
use std::arch::global_asm;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Constants must be... constant
|
||||
|
||||
static mut S: i32 = 1;
|
||||
const fn const_foo(x: i32) -> i32 {
|
||||
x
|
||||
}
|
||||
const fn const_bar<T>(x: T) -> T {
|
||||
x
|
||||
}
|
||||
global_asm!("{}", const unsafe { S });
|
||||
//~^ ERROR: evaluation of constant value failed
|
||||
//~| mutable global memory
|
||||
global_asm!("{}", const const_foo(0));
|
||||
global_asm!("{}", const const_foo(unsafe { S }));
|
||||
//~^ ERROR: evaluation of constant value failed
|
||||
//~| mutable global memory
|
||||
global_asm!("{}", const const_bar(0));
|
||||
global_asm!("{}", const const_bar(unsafe { S }));
|
||||
//~^ ERROR: evaluation of constant value failed
|
||||
//~| mutable global memory
|
@ -1,21 +0,0 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/type-check-4.rs:17:34
|
||||
|
|
||||
LL | global_asm!("{}", const unsafe { S });
|
||||
| ^ constant accesses mutable global memory
|
||||
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/type-check-4.rs:21:44
|
||||
|
|
||||
LL | global_asm!("{}", const const_foo(unsafe { S }));
|
||||
| ^ constant accesses mutable global memory
|
||||
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/type-check-4.rs:25:44
|
||||
|
|
||||
LL | global_asm!("{}", const const_bar(unsafe { S }));
|
||||
| ^ constant accesses mutable global memory
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0080`.
|
11
tests/ui/asm/non-const.rs
Normal file
11
tests/ui/asm/non-const.rs
Normal file
@ -0,0 +1,11 @@
|
||||
//@ needs-asm-support
|
||||
|
||||
use std::arch::global_asm;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Constants must be... constant
|
||||
fn non_const_fn(x: i32) -> i32 { x }
|
||||
|
||||
global_asm!("/* {} */", const non_const_fn(0));
|
||||
//~^ERROR: cannot call non-const fn
|
11
tests/ui/asm/non-const.stderr
Normal file
11
tests/ui/asm/non-const.stderr
Normal file
@ -0,0 +1,11 @@
|
||||
error[E0015]: cannot call non-const fn `non_const_fn` in constants
|
||||
--> $DIR/non-const.rs:10:31
|
||||
|
|
||||
LL | global_asm!("/* {} */", const non_const_fn(0));
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: calls in constants are limited to constant functions, tuple structs and tuple variants
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0015`.
|
@ -1,27 +0,0 @@
|
||||
//@ only-x86_64
|
||||
//@ build-fail
|
||||
|
||||
use std::arch::global_asm;
|
||||
|
||||
fn main() {}
|
||||
|
||||
// Constants must be... constant
|
||||
|
||||
static mut S: i32 = 1;
|
||||
const fn const_foo(x: i32) -> i32 {
|
||||
x
|
||||
}
|
||||
const fn const_bar<T>(x: T) -> T {
|
||||
x
|
||||
}
|
||||
global_asm!("{}", const unsafe { S });
|
||||
//~^ ERROR evaluation of constant value failed
|
||||
//~| mutable global memory
|
||||
global_asm!("{}", const const_foo(0));
|
||||
global_asm!("{}", const const_foo(unsafe { S }));
|
||||
//~^ ERROR evaluation of constant value failed
|
||||
//~| mutable global memory
|
||||
global_asm!("{}", const const_bar(0));
|
||||
global_asm!("{}", const const_bar(unsafe { S }));
|
||||
//~^ ERROR evaluation of constant value failed
|
||||
//~| mutable global memory
|
@ -1,21 +0,0 @@
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/type-check-4.rs:17:34
|
||||
|
|
||||
LL | global_asm!("{}", const unsafe { S });
|
||||
| ^ constant accesses mutable global memory
|
||||
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/type-check-4.rs:21:44
|
||||
|
|
||||
LL | global_asm!("{}", const const_foo(unsafe { S }));
|
||||
| ^ constant accesses mutable global memory
|
||||
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/type-check-4.rs:25:44
|
||||
|
|
||||
LL | global_asm!("{}", const const_bar(unsafe { S }));
|
||||
| ^ constant accesses mutable global memory
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0080`.
|
Loading…
Reference in New Issue
Block a user