| //@ add-minicore |
| //@ revisions: I586 X86_64 AARCH64 |
| //@ [I586] compile-flags: -C no-prepopulate-passes --target=i586-unknown-linux-gnu |
| //@ [I586] needs-llvm-components: x86 |
| //@ [X86_64] compile-flags: -C no-prepopulate-passes --target=x86_64-unknown-linux-gnu |
| //@ [X86_64] needs-llvm-components: x86 |
| //@ [AARCH64] compile-flags: -C no-prepopulate-passes --target=aarch64-unknown-linux-gnu |
| //@ [AARCH64] needs-llvm-components: aarch64 |
| |
| #![crate_type = "lib"] |
| #![feature(no_core, rust_tail_cc, explicit_tail_calls)] |
| #![no_core] |
| |
| extern crate minicore; |
| |
| // CHECK: define{{( dso_local)?}} tailcc void @peach(i16 |
| #[no_mangle] |
| #[inline(never)] |
| pub extern "tail" fn peach(_: u16) { |
| loop {} |
| } |
| |
| // CHECK: call tailcc void @peach(i16 |
| pub fn quince(x: u16) { |
| if let 12345u16 = x { |
| peach(54321); |
| } |
| } |