| //@ 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 |