]> git.lizzy.rs Git - rust.git/blob - src/test/ui/asm/aarch64/srcloc.rs
Added docs to internal_macro const
[rust.git] / src / test / ui / asm / aarch64 / srcloc.rs
1 // min-llvm-version: 10.0.1
2 // only-aarch64
3 // build-fail
4 // compile-flags: -Ccodegen-units=1
5 #![feature(asm)]
6
7 // Checks that inline asm errors are mapped to the correct line in the source code.
8
9 fn main() {
10     unsafe {
11         asm!("invalid_instruction");
12         //~^ ERROR: unrecognized instruction mnemonic
13
14         asm!("
15             invalid_instruction
16         ");
17         //~^^ ERROR: unrecognized instruction mnemonic
18
19         asm!(r#"
20             invalid_instruction
21         "#);
22         //~^^ ERROR: unrecognized instruction mnemonic
23
24         asm!("
25             mov x0, x0
26             invalid_instruction
27             mov x0, x0
28         ");
29         //~^^^ ERROR: unrecognized instruction mnemonic
30
31         asm!(r#"
32             mov x0, x0
33             invalid_instruction
34             mov x0, x0
35         "#);
36         //~^^^ ERROR: unrecognized instruction mnemonic
37
38         asm!(concat!("invalid", "_", "instruction"));
39         //~^ ERROR: unrecognized instruction mnemonic
40
41         asm!(
42             "invalid_instruction",
43         );
44         //~^^ ERROR: unrecognized instruction mnemonic
45
46         asm!(
47             "mov x0, x0",
48             "invalid_instruction",
49             "mov x0, x0",
50         );
51         //~^^^ ERROR: unrecognized instruction mnemonic
52
53         asm!(
54             "mov x0, x0\n",
55             "invalid_instruction",
56             "mov x0, x0",
57         );
58         //~^^^ ERROR: unrecognized instruction mnemonic
59
60         asm!(
61             "mov x0, x0",
62             concat!("invalid", "_", "instruction"),
63             "mov x0, x0",
64         );
65         //~^^^ ERROR: unrecognized instruction mnemonic
66
67         asm!(
68             concat!("mov x0", ", ", "x0"),
69             concat!("invalid", "_", "instruction"),
70             concat!("mov x0", ", ", "x0"),
71         );
72         //~^^^ ERROR: unrecognized instruction mnemonic
73
74         // Make sure template strings get separated
75         asm!(
76             "invalid_instruction1",
77             "invalid_instruction2",
78         );
79         //~^^^ ERROR: unrecognized instruction mnemonic
80         //~^^^ ERROR: unrecognized instruction mnemonic
81
82         asm!(
83             concat!(
84                 "invalid", "_", "instruction1", "\n",
85                 "invalid", "_", "instruction2",
86             ),
87         );
88         //~^^^^^ ERROR: unrecognized instruction mnemonic
89         //~^^^^^^ ERROR: unrecognized instruction mnemonic
90
91         asm!(
92             concat!(
93                 "invalid", "_", "instruction1", "\n",
94                 "invalid", "_", "instruction2",
95             ),
96             concat!(
97                 "invalid", "_", "instruction3", "\n",
98                 "invalid", "_", "instruction4",
99             ),
100         );
101         //~^^^^^^^^^ ERROR: unrecognized instruction mnemonic
102         //~^^^^^^^^^^ ERROR: unrecognized instruction mnemonic
103         //~^^^^^^^ ERROR: unrecognized instruction mnemonic
104         //~^^^^^^^^ ERROR: unrecognized instruction mnemonic
105
106         asm!(
107             concat!(
108                 "invalid", "_", "instruction1", "\n",
109                 "invalid", "_", "instruction2", "\n",
110             ),
111             concat!(
112                 "invalid", "_", "instruction3", "\n",
113                 "invalid", "_", "instruction4", "\n",
114             ),
115         );
116         //~^^^^^^^^^ ERROR: unrecognized instruction mnemonic
117         //~^^^^^^^^^^ ERROR: unrecognized instruction mnemonic
118         //~^^^^^^^ ERROR: unrecognized instruction mnemonic
119         //~^^^^^^^^ ERROR: unrecognized instruction mnemonic
120     }
121 }