| //@ revisions: x32 x64 | |
| //@[x32] only-x86 | |
| //@[x64] only-x86_64 | |
| //@ compile-flags: -C no-prepopulate-passes | |
| #![crate_type = "lib"] | |
| #![no_std] | |
| use core::arch::global_asm; | |
| // CHECK: module asm | |
| // CHECK-LABEL: foo | |
| // CHECK: "{{[[:space:]]+}}jmp baz" | |
| // any other global_asm will be appended to this first block, so: | |
| // CHECK-LABEL: bar | |
| // CHECK: "{{[[:space:]]+}}jmp quux" | |
| global_asm!( | |
| r#" | |
| .global foo | |
| foo: | |
| jmp baz | |
| "# | |
| ); | |
| extern "C" { | |
| fn foo(); | |
| } | |
| // CHECK-LABEL: @baz | |
| #[no_mangle] | |
| pub unsafe extern "C" fn baz() {} | |
| // no checks here; this has been appended to the first occurrence | |
| global_asm!( | |
| r#" | |
| .global bar | |
| bar: | |
| jmp quux | |
| "# | |
| ); | |
| extern "C" { | |
| fn bar(); | |
| } | |
| #[no_mangle] | |
| pub unsafe extern "C" fn quux() {} |