]> git.proxmox.com Git - rustc.git/blame - src/test/codegen/global_asm_x2.rs
New upstream version 1.58.1+dfsg1
[rustc.git] / src / test / codegen / global_asm_x2.rs
CommitLineData
cc61c64b
XL
1// ignore-aarch64
2// ignore-aarch64_be
3// ignore-arm
4// ignore-armeb
5// ignore-avr
6// ignore-bpfel
7// ignore-bpfeb
8// ignore-hexagon
9// ignore-mips
cc61c64b 10// ignore-mips64
cc61c64b
XL
11// ignore-msp430
12// ignore-powerpc64
13// ignore-powerpc64le
14// ignore-powerpc
15// ignore-r600
16// ignore-amdgcn
17// ignore-sparc
18// ignore-sparcv9
19// ignore-sparcel
20// ignore-s390x
21// ignore-tce
22// ignore-thumb
23// ignore-thumbeb
24// ignore-xcore
25// ignore-nvptx
26// ignore-nvptx64
27// ignore-le32
28// ignore-le64
29// ignore-amdil
30// ignore-amdil64
31// ignore-hsail
32// ignore-hsail64
33// ignore-spir
34// ignore-spir64
35// ignore-kalimba
36// ignore-shave
37// ignore-wasm32
38// ignore-wasm64
39// ignore-emscripten
40// compile-flags: -C no-prepopulate-passes
41
42#![feature(global_asm)]
43#![crate_type = "lib"]
44#[no_std]
45
46// CHECK-LABEL: foo
47// CHECK: module asm
48// CHECK: module asm "{{[[:space:]]+}}jmp baz"
49// any other global_asm will be appended to this first block, so:
50// CHECK-LABEL: bar
51// CHECK: module asm "{{[[:space:]]+}}jmp quux"
52global_asm!(r#"
53 .global foo
54foo:
55 jmp baz
56"#);
57
58extern "C" {
59 fn foo();
60}
61
62// CHECK-LABEL: @baz
63#[no_mangle]
64pub unsafe extern "C" fn baz() {}
65
66// no checks here; this has been appended to the first occurrence
67global_asm!(r#"
68 .global bar
69bar:
70 jmp quux
71"#);
72
73extern "C" {
74 fn bar();
75}
76
77#[no_mangle]
78pub unsafe extern "C" fn quux() {}