]>
git.proxmox.com Git - rustc.git/blob - src/test/ui/asm/bad-template.rs
1 // revisions: x86_64_mirunsafeck aarch64_mirunsafeck x86_64_thirunsafeck aarch64_thirunsafeck
3 // [x86_64_thirunsafeck] compile-flags: -Z thir-unsafeck --target x86_64-unknown-linux-gnu
4 // [aarch64_thirunsafeck] compile-flags: -Z thir-unsafeck --target aarch64-unknown-linux-gnu
5 // [x86_64_mirunsafeck] compile-flags: --target x86_64-unknown-linux-gnu
6 // [aarch64_mirunsafeck] compile-flags: --target aarch64-unknown-linux-gnu
8 // [x86_64_thirunsafeck] needs-llvm-components: x86
9 // [x86_64_mirunsafeck] needs-llvm-components: x86
10 // [aarch64_thirunsafeck] needs-llvm-components: aarch64
11 // [aarch64_mirunsafeck] needs-llvm-components: aarch64
13 #![feature(no_core, lang_items, rustc_attrs, asm_const)]
16 #[rustc_builtin_macro]
20 #[rustc_builtin_macro]
21 macro_rules
! global_asm
{
32 //~^ ERROR invalid reference to argument at index 0
33 asm
!("{1}", in(reg
) foo
);
34 //~^ ERROR invalid reference to argument at index 1
35 //~^^ ERROR argument never used
37 //~^ ERROR there is no argument named `a`
38 asm
!("{}", a
= in(reg
) foo
);
39 //~^ ERROR invalid reference to argument at index 0
40 //~^^ ERROR argument never used
41 asm
!("{1}", a
= in(reg
) foo
);
42 //~^ ERROR invalid reference to argument at index 1
43 //~^^ ERROR named argument never used
44 #[cfg(any(x86_64_thirunsafeck, x86_64_mirunsafeck))]
45 asm
!("{}", in("eax") foo
);
46 //[x86_64_thirunsafeck,x86_64_mirunsafeck]~^ ERROR invalid reference to argument at index 0
47 #[cfg(any(aarch64_thirunsafeck, aarch64_mirunsafeck))]
48 asm
!("{}", in("x0") foo
);
49 //[aarch64_thirunsafeck,aarch64_mirunsafeck]~^ ERROR invalid reference to argument at index 0
50 asm
!("{:foo}", in(reg
) foo
);
51 //~^ ERROR asm template modifier must be a single character
52 //~| WARN formatting may not be suitable for sub-register argument [asm_sub_register]
53 asm
!("", in(reg
) 0, in(reg
) 1);
54 //~^ ERROR multiple unused asm arguments
60 //~^ ERROR invalid reference to argument at index 0
61 global_asm
!("{1}", const FOO
);
62 //~^ ERROR invalid reference to argument at index 1
63 //~^^ ERROR argument never used
65 //~^ ERROR there is no argument named `a`
66 global_asm
!("{}", a
= const FOO
);
67 //~^ ERROR invalid reference to argument at index 0
68 //~^^ ERROR argument never used
69 global_asm
!("{1}", a
= const FOO
);
70 //~^ ERROR invalid reference to argument at index 1
71 //~^^ ERROR named argument never used
72 global_asm
!("{:foo}", const FOO
);
73 //~^ ERROR asm template modifier must be a single character
74 global_asm
!("", const FOO
, const FOO
);
75 //~^ ERROR multiple unused asm arguments