2023-08-25 23:01:06 +02:00
|
|
|
// normalize-stderr-test "(abi|pref|unadjusted_abi_align): Align\([1-8] bytes\)" -> "$1: $$SOME_ALIGN"
|
|
|
|
// normalize-stderr-test "(size): Size\([48] bytes\)" -> "$1: $$SOME_SIZE"
|
|
|
|
// normalize-stderr-test "(can_unwind): (true|false)" -> "$1: $$SOME_BOOL"
|
|
|
|
// normalize-stderr-test "(valid_range): 0\.\.=(4294967295|18446744073709551615)" -> "$1: $$FULL"
|
|
|
|
// This pattern is prepared for when we account for alignment in the niche.
|
|
|
|
// normalize-stderr-test "(valid_range): [1-9]\.\.=(429496729[0-9]|1844674407370955161[0-9])" -> "$1: $$NON_NULL"
|
|
|
|
// Some attributes are only computed for release builds:
|
|
|
|
// compile-flags: -O
|
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
#![crate_type = "lib"]
|
|
|
|
|
2023-09-02 14:03:25 +02:00
|
|
|
struct S(u16);
|
|
|
|
|
2023-08-25 23:01:06 +02:00
|
|
|
#[rustc_abi(debug)]
|
|
|
|
fn test(_x: u8) -> bool { true } //~ ERROR: fn_abi
|
|
|
|
|
2023-08-30 09:57:48 +02:00
|
|
|
#[rustc_abi(debug)]
|
|
|
|
type TestFnPtr = fn(bool) -> u8; //~ ERROR: fn_abi
|
2023-08-25 23:01:06 +02:00
|
|
|
|
|
|
|
#[rustc_abi(debug)]
|
|
|
|
fn test_generic<T>(_x: *const T) { } //~ ERROR: fn_abi
|
|
|
|
|
2023-09-02 14:03:25 +02:00
|
|
|
#[rustc_abi(debug)]
|
|
|
|
const C: () = (); //~ ERROR: can only be applied to
|
|
|
|
|
|
|
|
impl S {
|
|
|
|
#[rustc_abi(debug)]
|
|
|
|
const C: () = (); //~ ERROR: can only be applied to
|
|
|
|
}
|
|
|
|
|
2023-08-25 23:01:06 +02:00
|
|
|
impl S {
|
|
|
|
#[rustc_abi(debug)]
|
|
|
|
fn assoc_test(&self) { } //~ ERROR: fn_abi
|
|
|
|
}
|