summaryrefslogtreecommitdiffstats
path: root/src/test/ui/asm/aarch64/interpolated-idents.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/asm/aarch64/interpolated-idents.rs')
-rw-r--r--src/test/ui/asm/aarch64/interpolated-idents.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/asm/aarch64/interpolated-idents.rs b/src/test/ui/asm/aarch64/interpolated-idents.rs
new file mode 100644
index 000000000..e87a88434
--- /dev/null
+++ b/src/test/ui/asm/aarch64/interpolated-idents.rs
@@ -0,0 +1,24 @@
+// only-aarch64
+// needs-asm-support
+use std::arch::asm;
+
+macro_rules! m {
+ ($in:ident $out:ident $lateout:ident $inout:ident $inlateout:ident $const:ident $sym:ident
+ $pure:ident $nomem:ident $readonly:ident $preserves_flags:ident
+ $noreturn:ident $nostack:ident $options:ident) => {
+ unsafe {
+ asm!("", $in(x) x, $out(x) x, $lateout(x) x, $inout(x) x, $inlateout(x) x,
+ //~^ ERROR asm outputs are not allowed with the `noreturn` option
+ const x, sym x,
+ $options($pure, $nomem, $readonly, $preserves_flags, $noreturn, $nostack));
+ //~^ ERROR the `nomem` and `readonly` options are mutually exclusive
+ //~| ERROR the `pure` and `noreturn` options are mutually exclusive
+ }
+ };
+}
+
+fn main() {
+ m!(in out lateout inout inlateout const sym
+ pure nomem readonly preserves_flags
+ noreturn nostack options);
+}