]> git.lizzy.rs Git - rust.git/blob - src/test/ui/asm/bad-template.rs
Auto merge of #86155 - alexcrichton:abort-on-unwind, r=nikomatsakis
[rust.git] / src / test / ui / asm / bad-template.rs
1 // only-x86_64
2 // revisions: mirunsafeck thirunsafeck
3 // [thirunsafeck]compile-flags: -Z thir-unsafeck
4
5 #![feature(asm, global_asm)]
6
7 fn main() {
8     let mut foo = 0;
9     unsafe {
10         asm!("{}");
11         //~^ ERROR invalid reference to argument at index 0
12         asm!("{1}", in(reg) foo);
13         //~^ ERROR invalid reference to argument at index 1
14         //~^^ ERROR argument never used
15         asm!("{a}");
16         //~^ ERROR there is no argument named `a`
17         asm!("{}", a = in(reg) foo);
18         //~^ ERROR invalid reference to argument at index 0
19         //~^^ ERROR argument never used
20         asm!("{1}", a = in(reg) foo);
21         //~^ ERROR invalid reference to argument at index 1
22         //~^^ ERROR named argument never used
23         asm!("{}", in("eax") foo);
24         //~^ ERROR invalid reference to argument at index 0
25         asm!("{:foo}", in(reg) foo);
26         //~^ ERROR asm template modifier must be a single character
27         asm!("", in(reg) 0, in(reg) 1);
28         //~^ ERROR multiple unused asm arguments
29     }
30 }
31
32 const FOO: i32 = 1;
33 global_asm!("{}");
34 //~^ ERROR invalid reference to argument at index 0
35 global_asm!("{1}", const FOO);
36 //~^ ERROR invalid reference to argument at index 1
37 //~^^ ERROR argument never used
38 global_asm!("{a}");
39 //~^ ERROR there is no argument named `a`
40 global_asm!("{}", a = const FOO);
41 //~^ ERROR invalid reference to argument at index 0
42 //~^^ ERROR argument never used
43 global_asm!("{1}", a = const FOO);
44 //~^ ERROR invalid reference to argument at index 1
45 //~^^ ERROR named argument never used
46 global_asm!("{:foo}", const FOO);
47 //~^ ERROR asm template modifier must be a single character
48 global_asm!("", const FOO, const FOO);
49 //~^ ERROR multiple unused asm arguments