diff options
Diffstat (limited to 'tests/ui/feature-gates/feature-gate-abi-avr-interrupt.rs')
-rw-r--r-- | tests/ui/feature-gates/feature-gate-abi-avr-interrupt.rs | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/ui/feature-gates/feature-gate-abi-avr-interrupt.rs b/tests/ui/feature-gates/feature-gate-abi-avr-interrupt.rs new file mode 100644 index 000000000..05461297a --- /dev/null +++ b/tests/ui/feature-gates/feature-gate-abi-avr-interrupt.rs @@ -0,0 +1,51 @@ +// needs-llvm-components: avr +// compile-flags: --target=avr-unknown-gnu-atmega328 --crate-type=rlib +#![no_core] +#![feature(no_core, lang_items)] +#[lang="sized"] +trait Sized { } + +// Test that the AVR interrupt ABI cannot be used when avr_interrupt +// feature gate is not used. + +extern "avr-non-blocking-interrupt" fn fu() {} +//~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental +extern "avr-interrupt" fn f() {} +//~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + +trait T { + extern "avr-interrupt" fn m(); + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + extern "avr-non-blocking-interrupt" fn mu(); + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + + extern "avr-interrupt" fn dm() {} + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + extern "avr-non-blocking-interrupt" fn dmu() {} + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental +} + +struct S; +impl T for S { + extern "avr-interrupt" fn m() {} + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + extern "avr-non-blocking-interrupt" fn mu() {} + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental +} + +impl S { + extern "avr-interrupt" fn im() {} + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + extern "avr-non-blocking-interrupt" fn imu() {} + //~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental +} + +type TA = extern "avr-interrupt" fn(); +//~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental +type TAU = extern "avr-non-blocking-interrupt" fn(); +//~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental + +extern "avr-interrupt" {} +//~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental +extern "avr-non-blocking-interrupt" {} +//~^ ERROR avr-interrupt and avr-non-blocking-interrupt ABIs are experimental |