summaryrefslogtreecommitdiffstats
path: root/tests/ui/asm
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/asm
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--tests/ui/asm/aarch64/bad-options.rs (renamed from src/test/ui/asm/aarch64/bad-options.rs)0
-rw-r--r--tests/ui/asm/aarch64/bad-options.stderr (renamed from src/test/ui/asm/aarch64/bad-options.stderr)0
-rw-r--r--tests/ui/asm/aarch64/bad-reg.rs (renamed from src/test/ui/asm/aarch64/bad-reg.rs)0
-rw-r--r--tests/ui/asm/aarch64/bad-reg.stderr (renamed from src/test/ui/asm/aarch64/bad-reg.stderr)0
-rw-r--r--tests/ui/asm/aarch64/const.rs (renamed from src/test/ui/asm/aarch64/const.rs)0
-rw-r--r--tests/ui/asm/aarch64/duplicate-options.fixed (renamed from src/test/ui/asm/aarch64/duplicate-options.fixed)0
-rw-r--r--tests/ui/asm/aarch64/duplicate-options.rs (renamed from src/test/ui/asm/aarch64/duplicate-options.rs)0
-rw-r--r--tests/ui/asm/aarch64/duplicate-options.stderr (renamed from src/test/ui/asm/aarch64/duplicate-options.stderr)0
-rw-r--r--tests/ui/asm/aarch64/interpolated-idents.rs (renamed from src/test/ui/asm/aarch64/interpolated-idents.rs)0
-rw-r--r--tests/ui/asm/aarch64/interpolated-idents.stderr46
-rw-r--r--tests/ui/asm/aarch64/llvm-58384.rs (renamed from src/test/ui/asm/aarch64/llvm-58384.rs)0
-rw-r--r--tests/ui/asm/aarch64/may_unwind.rs (renamed from src/test/ui/asm/aarch64/may_unwind.rs)0
-rw-r--r--tests/ui/asm/aarch64/parse-error.rs (renamed from src/test/ui/asm/aarch64/parse-error.rs)0
-rw-r--r--tests/ui/asm/aarch64/parse-error.stderr (renamed from src/test/ui/asm/aarch64/parse-error.stderr)0
-rw-r--r--tests/ui/asm/aarch64/srcloc.rs (renamed from src/test/ui/asm/aarch64/srcloc.rs)0
-rw-r--r--tests/ui/asm/aarch64/srcloc.stderr (renamed from src/test/ui/asm/aarch64/srcloc.stderr)0
-rw-r--r--tests/ui/asm/aarch64/sym.rs (renamed from src/test/ui/asm/aarch64/sym.rs)0
-rw-r--r--tests/ui/asm/aarch64/type-check-2-2.rs (renamed from src/test/ui/asm/aarch64/type-check-2-2.rs)4
-rw-r--r--tests/ui/asm/aarch64/type-check-2-2.stderr46
-rw-r--r--tests/ui/asm/aarch64/type-check-2.rs (renamed from src/test/ui/asm/aarch64/type-check-2.rs)0
-rw-r--r--tests/ui/asm/aarch64/type-check-2.stderr (renamed from src/test/ui/asm/aarch64/type-check-2.stderr)0
-rw-r--r--tests/ui/asm/aarch64/type-check-3.rs (renamed from src/test/ui/asm/aarch64/type-check-3.rs)0
-rw-r--r--tests/ui/asm/aarch64/type-check-3.stderr (renamed from src/test/ui/asm/aarch64/type-check-3.stderr)0
-rw-r--r--tests/ui/asm/aarch64/type-check-4.rs (renamed from src/test/ui/asm/aarch64/type-check-4.rs)0
-rw-r--r--tests/ui/asm/aarch64/type-check-4.stderr (renamed from src/test/ui/asm/aarch64/type-check-4.stderr)0
-rw-r--r--tests/ui/asm/bad-arch.mirunsafeck.stderr (renamed from src/test/ui/asm/bad-arch.mirunsafeck.stderr)1
-rw-r--r--tests/ui/asm/bad-arch.rs (renamed from src/test/ui/asm/bad-arch.rs)0
-rw-r--r--tests/ui/asm/bad-arch.thirunsafeck.stderr (renamed from src/test/ui/asm/bad-arch.thirunsafeck.stderr)1
-rw-r--r--tests/ui/asm/bad-template.aarch64_mirunsafeck.stderr (renamed from src/test/ui/asm/bad-template.aarch64_mirunsafeck.stderr)0
-rw-r--r--tests/ui/asm/bad-template.aarch64_thirunsafeck.stderr (renamed from src/test/ui/asm/bad-template.aarch64_thirunsafeck.stderr)0
-rw-r--r--tests/ui/asm/bad-template.rs (renamed from src/test/ui/asm/bad-template.rs)0
-rw-r--r--tests/ui/asm/bad-template.x86_64_mirunsafeck.stderr (renamed from src/test/ui/asm/bad-template.x86_64_mirunsafeck.stderr)0
-rw-r--r--tests/ui/asm/bad-template.x86_64_thirunsafeck.stderr (renamed from src/test/ui/asm/bad-template.x86_64_thirunsafeck.stderr)0
-rw-r--r--tests/ui/asm/generic-const.rs (renamed from src/test/ui/asm/generic-const.rs)0
-rw-r--r--tests/ui/asm/inline-syntax.arm.stderr (renamed from src/test/ui/asm/inline-syntax.arm.stderr)0
-rw-r--r--tests/ui/asm/inline-syntax.rs (renamed from src/test/ui/asm/inline-syntax.rs)0
-rw-r--r--tests/ui/asm/inline-syntax.x86_64.stderr (renamed from src/test/ui/asm/inline-syntax.x86_64.stderr)0
-rw-r--r--tests/ui/asm/issue-72570.rs (renamed from src/test/ui/asm/issue-72570.rs)0
-rw-r--r--tests/ui/asm/issue-72570.stderr (renamed from src/test/ui/asm/issue-72570.stderr)0
-rw-r--r--tests/ui/asm/issue-85247.rs (renamed from src/test/ui/asm/issue-85247.rs)0
-rw-r--r--tests/ui/asm/issue-85247.rwpi.stderr (renamed from src/test/ui/asm/issue-85247.rwpi.stderr)0
-rw-r--r--tests/ui/asm/issue-87802.rs (renamed from src/test/ui/asm/issue-87802.rs)0
-rw-r--r--tests/ui/asm/issue-87802.stderr (renamed from src/test/ui/asm/issue-87802.stderr)0
-rw-r--r--tests/ui/asm/issue-89305.rs (renamed from src/test/ui/asm/issue-89305.rs)0
-rw-r--r--tests/ui/asm/issue-89305.stderr (renamed from src/test/ui/asm/issue-89305.stderr)0
-rw-r--r--tests/ui/asm/issue-92378.rs (renamed from src/test/ui/asm/issue-92378.rs)0
-rw-r--r--tests/ui/asm/issue-97490.rs (renamed from src/test/ui/asm/issue-97490.rs)0
-rw-r--r--tests/ui/asm/issue-99071.rs (renamed from src/test/ui/asm/issue-99071.rs)0
-rw-r--r--tests/ui/asm/issue-99071.stderr (renamed from src/test/ui/asm/issue-99071.stderr)0
-rw-r--r--tests/ui/asm/issue-99122-2.rs (renamed from src/test/ui/asm/issue-99122-2.rs)0
-rw-r--r--tests/ui/asm/issue-99122.rs (renamed from src/test/ui/asm/issue-99122.rs)0
-rw-r--r--tests/ui/asm/issue-99122.stderr (renamed from src/test/ui/asm/issue-99122.stderr)0
-rw-r--r--tests/ui/asm/may_unwind.rs (renamed from src/test/ui/asm/may_unwind.rs)0
-rw-r--r--tests/ui/asm/naked-functions-ffi.rs (renamed from src/test/ui/asm/naked-functions-ffi.rs)0
-rw-r--r--tests/ui/asm/naked-functions-ffi.stderr (renamed from src/test/ui/asm/naked-functions-ffi.stderr)0
-rw-r--r--tests/ui/asm/naked-functions-unused.aarch64.stderr (renamed from src/test/ui/asm/naked-functions-unused.aarch64.stderr)0
-rw-r--r--tests/ui/asm/naked-functions-unused.rs (renamed from src/test/ui/asm/naked-functions-unused.rs)0
-rw-r--r--tests/ui/asm/naked-functions-unused.x86_64.stderr (renamed from src/test/ui/asm/naked-functions-unused.x86_64.stderr)0
-rw-r--r--tests/ui/asm/naked-functions.rs (renamed from src/test/ui/asm/naked-functions.rs)0
-rw-r--r--tests/ui/asm/naked-functions.stderr (renamed from src/test/ui/asm/naked-functions.stderr)0
-rw-r--r--tests/ui/asm/naked-invalid-attr.rs (renamed from src/test/ui/asm/naked-invalid-attr.rs)0
-rw-r--r--tests/ui/asm/naked-invalid-attr.stderr (renamed from src/test/ui/asm/naked-invalid-attr.stderr)0
-rw-r--r--tests/ui/asm/named-asm-labels.rs (renamed from src/test/ui/asm/named-asm-labels.rs)0
-rw-r--r--tests/ui/asm/named-asm-labels.s (renamed from src/test/ui/asm/named-asm-labels.s)0
-rw-r--r--tests/ui/asm/named-asm-labels.stderr (renamed from src/test/ui/asm/named-asm-labels.stderr)0
-rw-r--r--tests/ui/asm/noreturn.rs (renamed from src/test/ui/asm/noreturn.rs)0
-rw-r--r--tests/ui/asm/reg-conflict.rs (renamed from src/test/ui/asm/reg-conflict.rs)0
-rw-r--r--tests/ui/asm/reg-conflict.stderr (renamed from src/test/ui/asm/reg-conflict.stderr)0
-rw-r--r--tests/ui/asm/type-check-1.rs (renamed from src/test/ui/asm/type-check-1.rs)0
-rw-r--r--tests/ui/asm/type-check-1.stderr (renamed from src/test/ui/asm/type-check-1.stderr)0
-rw-r--r--tests/ui/asm/type-check-4.rs (renamed from src/test/ui/asm/type-check-4.rs)0
-rw-r--r--tests/ui/asm/type-check-4.stderr (renamed from src/test/ui/asm/type-check-4.stderr)0
-rw-r--r--tests/ui/asm/unpretty-expanded.rs (renamed from src/test/ui/asm/unpretty-expanded.rs)0
-rw-r--r--tests/ui/asm/unpretty-expanded.stdout (renamed from src/test/ui/asm/unpretty-expanded.stdout)0
-rw-r--r--tests/ui/asm/x86_64/bad-clobber-abi.rs (renamed from src/test/ui/asm/x86_64/bad-clobber-abi.rs)0
-rw-r--r--tests/ui/asm/x86_64/bad-clobber-abi.stderr (renamed from src/test/ui/asm/x86_64/bad-clobber-abi.stderr)0
-rw-r--r--tests/ui/asm/x86_64/bad-options.rs (renamed from src/test/ui/asm/x86_64/bad-options.rs)0
-rw-r--r--tests/ui/asm/x86_64/bad-options.stderr (renamed from src/test/ui/asm/x86_64/bad-options.stderr)0
-rw-r--r--tests/ui/asm/x86_64/bad-reg.rs (renamed from src/test/ui/asm/x86_64/bad-reg.rs)0
-rw-r--r--tests/ui/asm/x86_64/bad-reg.stderr (renamed from src/test/ui/asm/x86_64/bad-reg.stderr)0
-rw-r--r--tests/ui/asm/x86_64/const.rs (renamed from src/test/ui/asm/x86_64/const.rs)0
-rw-r--r--tests/ui/asm/x86_64/duplicate-options.fixed (renamed from src/test/ui/asm/x86_64/duplicate-options.fixed)0
-rw-r--r--tests/ui/asm/x86_64/duplicate-options.rs (renamed from src/test/ui/asm/x86_64/duplicate-options.rs)0
-rw-r--r--tests/ui/asm/x86_64/duplicate-options.stderr (renamed from src/test/ui/asm/x86_64/duplicate-options.stderr)0
-rw-r--r--tests/ui/asm/x86_64/interpolated-idents.rs (renamed from src/test/ui/asm/x86_64/interpolated-idents.rs)0
-rw-r--r--tests/ui/asm/x86_64/interpolated-idents.stderr46
-rw-r--r--tests/ui/asm/x86_64/issue-82869.rs (renamed from src/test/ui/asm/x86_64/issue-82869.rs)0
-rw-r--r--tests/ui/asm/x86_64/issue-82869.stderr (renamed from src/test/ui/asm/x86_64/issue-82869.stderr)0
-rw-r--r--tests/ui/asm/x86_64/issue-89875.rs (renamed from src/test/ui/asm/x86_64/issue-89875.rs)0
-rw-r--r--tests/ui/asm/x86_64/issue-96797.rs (renamed from src/test/ui/asm/x86_64/issue-96797.rs)0
-rw-r--r--tests/ui/asm/x86_64/may_unwind.rs (renamed from src/test/ui/asm/x86_64/may_unwind.rs)0
-rw-r--r--tests/ui/asm/x86_64/multiple-clobber-abi.rs (renamed from src/test/ui/asm/x86_64/multiple-clobber-abi.rs)0
-rw-r--r--tests/ui/asm/x86_64/parse-error.rs (renamed from src/test/ui/asm/x86_64/parse-error.rs)0
-rw-r--r--tests/ui/asm/x86_64/parse-error.stderr (renamed from src/test/ui/asm/x86_64/parse-error.stderr)0
-rw-r--r--tests/ui/asm/x86_64/srcloc.rs (renamed from src/test/ui/asm/x86_64/srcloc.rs)0
-rw-r--r--tests/ui/asm/x86_64/srcloc.stderr (renamed from src/test/ui/asm/x86_64/srcloc.stderr)0
-rw-r--r--tests/ui/asm/x86_64/sym.rs (renamed from src/test/ui/asm/x86_64/sym.rs)0
-rw-r--r--tests/ui/asm/x86_64/target-feature-attr.rs (renamed from src/test/ui/asm/x86_64/target-feature-attr.rs)0
-rw-r--r--tests/ui/asm/x86_64/target-feature-attr.stderr (renamed from src/test/ui/asm/x86_64/target-feature-attr.stderr)0
-rw-r--r--tests/ui/asm/x86_64/type-check-2.rs (renamed from src/test/ui/asm/x86_64/type-check-2.rs)0
-rw-r--r--tests/ui/asm/x86_64/type-check-2.stderr (renamed from src/test/ui/asm/x86_64/type-check-2.stderr)0
-rw-r--r--tests/ui/asm/x86_64/type-check-3.rs (renamed from src/test/ui/asm/x86_64/type-check-3.rs)0
-rw-r--r--tests/ui/asm/x86_64/type-check-3.stderr (renamed from src/test/ui/asm/x86_64/type-check-3.stderr)0
-rw-r--r--tests/ui/asm/x86_64/type-check-4.rs (renamed from src/test/ui/asm/x86_64/type-check-4.rs)0
-rw-r--r--tests/ui/asm/x86_64/type-check-4.stderr (renamed from src/test/ui/asm/x86_64/type-check-4.stderr)0
-rw-r--r--tests/ui/asm/x86_64/type-check-5.rs (renamed from src/test/ui/asm/x86_64/type-check-5.rs)3
-rw-r--r--tests/ui/asm/x86_64/type-check-5.stderr46
107 files changed, 188 insertions, 5 deletions
diff --git a/src/test/ui/asm/aarch64/bad-options.rs b/tests/ui/asm/aarch64/bad-options.rs
index 6172027a2..6172027a2 100644
--- a/src/test/ui/asm/aarch64/bad-options.rs
+++ b/tests/ui/asm/aarch64/bad-options.rs
diff --git a/src/test/ui/asm/aarch64/bad-options.stderr b/tests/ui/asm/aarch64/bad-options.stderr
index 21bcc4a9c..21bcc4a9c 100644
--- a/src/test/ui/asm/aarch64/bad-options.stderr
+++ b/tests/ui/asm/aarch64/bad-options.stderr
diff --git a/src/test/ui/asm/aarch64/bad-reg.rs b/tests/ui/asm/aarch64/bad-reg.rs
index 9ccb8ed67..9ccb8ed67 100644
--- a/src/test/ui/asm/aarch64/bad-reg.rs
+++ b/tests/ui/asm/aarch64/bad-reg.rs
diff --git a/src/test/ui/asm/aarch64/bad-reg.stderr b/tests/ui/asm/aarch64/bad-reg.stderr
index 0ba627dac..0ba627dac 100644
--- a/src/test/ui/asm/aarch64/bad-reg.stderr
+++ b/tests/ui/asm/aarch64/bad-reg.stderr
diff --git a/src/test/ui/asm/aarch64/const.rs b/tests/ui/asm/aarch64/const.rs
index de299bfdb..de299bfdb 100644
--- a/src/test/ui/asm/aarch64/const.rs
+++ b/tests/ui/asm/aarch64/const.rs
diff --git a/src/test/ui/asm/aarch64/duplicate-options.fixed b/tests/ui/asm/aarch64/duplicate-options.fixed
index fa1dd4aef..fa1dd4aef 100644
--- a/src/test/ui/asm/aarch64/duplicate-options.fixed
+++ b/tests/ui/asm/aarch64/duplicate-options.fixed
diff --git a/src/test/ui/asm/aarch64/duplicate-options.rs b/tests/ui/asm/aarch64/duplicate-options.rs
index b2d3fe7d9..b2d3fe7d9 100644
--- a/src/test/ui/asm/aarch64/duplicate-options.rs
+++ b/tests/ui/asm/aarch64/duplicate-options.rs
diff --git a/src/test/ui/asm/aarch64/duplicate-options.stderr b/tests/ui/asm/aarch64/duplicate-options.stderr
index feb3838f4..feb3838f4 100644
--- a/src/test/ui/asm/aarch64/duplicate-options.stderr
+++ b/tests/ui/asm/aarch64/duplicate-options.stderr
diff --git a/src/test/ui/asm/aarch64/interpolated-idents.rs b/tests/ui/asm/aarch64/interpolated-idents.rs
index e87a88434..e87a88434 100644
--- a/src/test/ui/asm/aarch64/interpolated-idents.rs
+++ b/tests/ui/asm/aarch64/interpolated-idents.rs
diff --git a/tests/ui/asm/aarch64/interpolated-idents.stderr b/tests/ui/asm/aarch64/interpolated-idents.stderr
new file mode 100644
index 000000000..f6c50c2e1
--- /dev/null
+++ b/tests/ui/asm/aarch64/interpolated-idents.stderr
@@ -0,0 +1,46 @@
+error: the `nomem` and `readonly` options are mutually exclusive
+ --> $DIR/interpolated-idents.rs:13:13
+ |
+LL | $options($pure, $nomem, $readonly, $preserves_flags, $noreturn, $nostack));
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | / m!(in out lateout inout inlateout const sym
+LL | | pure nomem readonly preserves_flags
+LL | | noreturn nostack options);
+ | |________________________________- in this macro invocation
+ |
+ = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: the `pure` and `noreturn` options are mutually exclusive
+ --> $DIR/interpolated-idents.rs:13:13
+ |
+LL | $options($pure, $nomem, $readonly, $preserves_flags, $noreturn, $nostack));
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | / m!(in out lateout inout inlateout const sym
+LL | | pure nomem readonly preserves_flags
+LL | | noreturn nostack options);
+ | |________________________________- in this macro invocation
+ |
+ = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: asm outputs are not allowed with the `noreturn` option
+ --> $DIR/interpolated-idents.rs:10:32
+ |
+LL | asm!("", $in(x) x, $out(x) x, $lateout(x) x, $inout(x) x, $inlateout(x) x,
+ | ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^
+...
+LL | / m!(in out lateout inout inlateout const sym
+LL | | pure nomem readonly preserves_flags
+LL | | noreturn nostack options);
+ | | -
+ | |________________________________|
+ | |________________________________in this macro invocation
+ | |________________________________in this macro invocation
+ | |________________________________in this macro invocation
+ | in this macro invocation
+ |
+ = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to 3 previous errors
+
diff --git a/src/test/ui/asm/aarch64/llvm-58384.rs b/tests/ui/asm/aarch64/llvm-58384.rs
index 308f78908..308f78908 100644
--- a/src/test/ui/asm/aarch64/llvm-58384.rs
+++ b/tests/ui/asm/aarch64/llvm-58384.rs
diff --git a/src/test/ui/asm/aarch64/may_unwind.rs b/tests/ui/asm/aarch64/may_unwind.rs
index 6af8728bb..6af8728bb 100644
--- a/src/test/ui/asm/aarch64/may_unwind.rs
+++ b/tests/ui/asm/aarch64/may_unwind.rs
diff --git a/src/test/ui/asm/aarch64/parse-error.rs b/tests/ui/asm/aarch64/parse-error.rs
index cbc93cd3f..cbc93cd3f 100644
--- a/src/test/ui/asm/aarch64/parse-error.rs
+++ b/tests/ui/asm/aarch64/parse-error.rs
diff --git a/src/test/ui/asm/aarch64/parse-error.stderr b/tests/ui/asm/aarch64/parse-error.stderr
index 804966b06..804966b06 100644
--- a/src/test/ui/asm/aarch64/parse-error.stderr
+++ b/tests/ui/asm/aarch64/parse-error.stderr
diff --git a/src/test/ui/asm/aarch64/srcloc.rs b/tests/ui/asm/aarch64/srcloc.rs
index dbb6cbb94..dbb6cbb94 100644
--- a/src/test/ui/asm/aarch64/srcloc.rs
+++ b/tests/ui/asm/aarch64/srcloc.rs
diff --git a/src/test/ui/asm/aarch64/srcloc.stderr b/tests/ui/asm/aarch64/srcloc.stderr
index 2e17b60b9..2e17b60b9 100644
--- a/src/test/ui/asm/aarch64/srcloc.stderr
+++ b/tests/ui/asm/aarch64/srcloc.stderr
diff --git a/src/test/ui/asm/aarch64/sym.rs b/tests/ui/asm/aarch64/sym.rs
index 6a6cdb00d..6a6cdb00d 100644
--- a/src/test/ui/asm/aarch64/sym.rs
+++ b/tests/ui/asm/aarch64/sym.rs
diff --git a/src/test/ui/asm/aarch64/type-check-2-2.rs b/tests/ui/asm/aarch64/type-check-2-2.rs
index 0ce1f1d8f..89f2b3bb7 100644
--- a/src/test/ui/asm/aarch64/type-check-2-2.rs
+++ b/tests/ui/asm/aarch64/type-check-2-2.rs
@@ -25,12 +25,10 @@ fn main() {
// Outputs require mutable places
- let v: Vec<u64> = vec![0, 1, 2];
+ let v: Vec<u64> = vec![0, 1, 2]; //~ ERROR cannot borrow `v` as mutable
asm!("{}", in(reg) v[0]);
asm!("{}", out(reg) v[0]);
- //~^ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
asm!("{}", inout(reg) v[0]);
- //~^ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
// Sym operands must point to a function or static
}
diff --git a/tests/ui/asm/aarch64/type-check-2-2.stderr b/tests/ui/asm/aarch64/type-check-2-2.stderr
new file mode 100644
index 000000000..41f7c01dc
--- /dev/null
+++ b/tests/ui/asm/aarch64/type-check-2-2.stderr
@@ -0,0 +1,46 @@
+error[E0381]: used binding `x` isn't initialized
+ --> $DIR/type-check-2-2.rs:19:28
+ |
+LL | let x: u64;
+ | - binding declared here but left uninitialized
+LL | asm!("{}", in(reg) x);
+ | ^ `x` used here but it isn't initialized
+ |
+help: consider assigning a value
+ |
+LL | let x: u64 = 0;
+ | +++
+
+error[E0381]: used binding `y` isn't initialized
+ --> $DIR/type-check-2-2.rs:22:9
+ |
+LL | let mut y: u64;
+ | ----- binding declared here but left uninitialized
+LL | asm!("{}", inout(reg) y);
+ | ^^^^^^^^^^^^^^^^^^^^^^^^ `y` used here but it isn't initialized
+ |
+help: consider assigning a value
+ |
+LL | let mut y: u64 = 0;
+ | +++
+
+error[E0596]: cannot borrow `v` as mutable, as it is not declared as mutable
+ --> $DIR/type-check-2-2.rs:28:13
+ |
+LL | let v: Vec<u64> = vec![0, 1, 2];
+ | ^ not mutable
+LL | asm!("{}", in(reg) v[0]);
+LL | asm!("{}", out(reg) v[0]);
+ | - cannot borrow as mutable
+LL | asm!("{}", inout(reg) v[0]);
+ | - cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut v: Vec<u64> = vec![0, 1, 2];
+ | +++
+
+error: aborting due to 3 previous errors
+
+Some errors have detailed explanations: E0381, E0596.
+For more information about an error, try `rustc --explain E0381`.
diff --git a/src/test/ui/asm/aarch64/type-check-2.rs b/tests/ui/asm/aarch64/type-check-2.rs
index 1c71c1185..1c71c1185 100644
--- a/src/test/ui/asm/aarch64/type-check-2.rs
+++ b/tests/ui/asm/aarch64/type-check-2.rs
diff --git a/src/test/ui/asm/aarch64/type-check-2.stderr b/tests/ui/asm/aarch64/type-check-2.stderr
index 875df44ff..875df44ff 100644
--- a/src/test/ui/asm/aarch64/type-check-2.stderr
+++ b/tests/ui/asm/aarch64/type-check-2.stderr
diff --git a/src/test/ui/asm/aarch64/type-check-3.rs b/tests/ui/asm/aarch64/type-check-3.rs
index 623f6593d..623f6593d 100644
--- a/src/test/ui/asm/aarch64/type-check-3.rs
+++ b/tests/ui/asm/aarch64/type-check-3.rs
diff --git a/src/test/ui/asm/aarch64/type-check-3.stderr b/tests/ui/asm/aarch64/type-check-3.stderr
index f710df2dc..f710df2dc 100644
--- a/src/test/ui/asm/aarch64/type-check-3.stderr
+++ b/tests/ui/asm/aarch64/type-check-3.stderr
diff --git a/src/test/ui/asm/aarch64/type-check-4.rs b/tests/ui/asm/aarch64/type-check-4.rs
index bd23755c0..bd23755c0 100644
--- a/src/test/ui/asm/aarch64/type-check-4.rs
+++ b/tests/ui/asm/aarch64/type-check-4.rs
diff --git a/src/test/ui/asm/aarch64/type-check-4.stderr b/tests/ui/asm/aarch64/type-check-4.stderr
index 4837e647b..4837e647b 100644
--- a/src/test/ui/asm/aarch64/type-check-4.stderr
+++ b/tests/ui/asm/aarch64/type-check-4.stderr
diff --git a/src/test/ui/asm/bad-arch.mirunsafeck.stderr b/tests/ui/asm/bad-arch.mirunsafeck.stderr
index 4aa271807..d7af29615 100644
--- a/src/test/ui/asm/bad-arch.mirunsafeck.stderr
+++ b/tests/ui/asm/bad-arch.mirunsafeck.stderr
@@ -14,3 +14,4 @@ LL | global_asm!("");
error: aborting due to 2 previous errors
+For more information about this error, try `rustc --explain E0472`.
diff --git a/src/test/ui/asm/bad-arch.rs b/tests/ui/asm/bad-arch.rs
index 93309899b..93309899b 100644
--- a/src/test/ui/asm/bad-arch.rs
+++ b/tests/ui/asm/bad-arch.rs
diff --git a/src/test/ui/asm/bad-arch.thirunsafeck.stderr b/tests/ui/asm/bad-arch.thirunsafeck.stderr
index 4aa271807..d7af29615 100644
--- a/src/test/ui/asm/bad-arch.thirunsafeck.stderr
+++ b/tests/ui/asm/bad-arch.thirunsafeck.stderr
@@ -14,3 +14,4 @@ LL | global_asm!("");
error: aborting due to 2 previous errors
+For more information about this error, try `rustc --explain E0472`.
diff --git a/src/test/ui/asm/bad-template.aarch64_mirunsafeck.stderr b/tests/ui/asm/bad-template.aarch64_mirunsafeck.stderr
index bb6a222b2..bb6a222b2 100644
--- a/src/test/ui/asm/bad-template.aarch64_mirunsafeck.stderr
+++ b/tests/ui/asm/bad-template.aarch64_mirunsafeck.stderr
diff --git a/src/test/ui/asm/bad-template.aarch64_thirunsafeck.stderr b/tests/ui/asm/bad-template.aarch64_thirunsafeck.stderr
index bb6a222b2..bb6a222b2 100644
--- a/src/test/ui/asm/bad-template.aarch64_thirunsafeck.stderr
+++ b/tests/ui/asm/bad-template.aarch64_thirunsafeck.stderr
diff --git a/src/test/ui/asm/bad-template.rs b/tests/ui/asm/bad-template.rs
index 556371747..556371747 100644
--- a/src/test/ui/asm/bad-template.rs
+++ b/tests/ui/asm/bad-template.rs
diff --git a/src/test/ui/asm/bad-template.x86_64_mirunsafeck.stderr b/tests/ui/asm/bad-template.x86_64_mirunsafeck.stderr
index 903b5e959..903b5e959 100644
--- a/src/test/ui/asm/bad-template.x86_64_mirunsafeck.stderr
+++ b/tests/ui/asm/bad-template.x86_64_mirunsafeck.stderr
diff --git a/src/test/ui/asm/bad-template.x86_64_thirunsafeck.stderr b/tests/ui/asm/bad-template.x86_64_thirunsafeck.stderr
index 903b5e959..903b5e959 100644
--- a/src/test/ui/asm/bad-template.x86_64_thirunsafeck.stderr
+++ b/tests/ui/asm/bad-template.x86_64_thirunsafeck.stderr
diff --git a/src/test/ui/asm/generic-const.rs b/tests/ui/asm/generic-const.rs
index caa9b7dbc..caa9b7dbc 100644
--- a/src/test/ui/asm/generic-const.rs
+++ b/tests/ui/asm/generic-const.rs
diff --git a/src/test/ui/asm/inline-syntax.arm.stderr b/tests/ui/asm/inline-syntax.arm.stderr
index 1352fb377..1352fb377 100644
--- a/src/test/ui/asm/inline-syntax.arm.stderr
+++ b/tests/ui/asm/inline-syntax.arm.stderr
diff --git a/src/test/ui/asm/inline-syntax.rs b/tests/ui/asm/inline-syntax.rs
index d06796e33..d06796e33 100644
--- a/src/test/ui/asm/inline-syntax.rs
+++ b/tests/ui/asm/inline-syntax.rs
diff --git a/src/test/ui/asm/inline-syntax.x86_64.stderr b/tests/ui/asm/inline-syntax.x86_64.stderr
index 840b250f8..840b250f8 100644
--- a/src/test/ui/asm/inline-syntax.x86_64.stderr
+++ b/tests/ui/asm/inline-syntax.x86_64.stderr
diff --git a/src/test/ui/asm/issue-72570.rs b/tests/ui/asm/issue-72570.rs
index bb1381634..bb1381634 100644
--- a/src/test/ui/asm/issue-72570.rs
+++ b/tests/ui/asm/issue-72570.rs
diff --git a/src/test/ui/asm/issue-72570.stderr b/tests/ui/asm/issue-72570.stderr
index fa5792688..fa5792688 100644
--- a/src/test/ui/asm/issue-72570.stderr
+++ b/tests/ui/asm/issue-72570.stderr
diff --git a/src/test/ui/asm/issue-85247.rs b/tests/ui/asm/issue-85247.rs
index e64f5e8af..e64f5e8af 100644
--- a/src/test/ui/asm/issue-85247.rs
+++ b/tests/ui/asm/issue-85247.rs
diff --git a/src/test/ui/asm/issue-85247.rwpi.stderr b/tests/ui/asm/issue-85247.rwpi.stderr
index 996b0933a..996b0933a 100644
--- a/src/test/ui/asm/issue-85247.rwpi.stderr
+++ b/tests/ui/asm/issue-85247.rwpi.stderr
diff --git a/src/test/ui/asm/issue-87802.rs b/tests/ui/asm/issue-87802.rs
index 5b2e636c2..5b2e636c2 100644
--- a/src/test/ui/asm/issue-87802.rs
+++ b/tests/ui/asm/issue-87802.rs
diff --git a/src/test/ui/asm/issue-87802.stderr b/tests/ui/asm/issue-87802.stderr
index de3e28fdd..de3e28fdd 100644
--- a/src/test/ui/asm/issue-87802.stderr
+++ b/tests/ui/asm/issue-87802.stderr
diff --git a/src/test/ui/asm/issue-89305.rs b/tests/ui/asm/issue-89305.rs
index 05677912d..05677912d 100644
--- a/src/test/ui/asm/issue-89305.rs
+++ b/tests/ui/asm/issue-89305.rs
diff --git a/src/test/ui/asm/issue-89305.stderr b/tests/ui/asm/issue-89305.stderr
index 7efc51020..7efc51020 100644
--- a/src/test/ui/asm/issue-89305.stderr
+++ b/tests/ui/asm/issue-89305.stderr
diff --git a/src/test/ui/asm/issue-92378.rs b/tests/ui/asm/issue-92378.rs
index 809b0d155..809b0d155 100644
--- a/src/test/ui/asm/issue-92378.rs
+++ b/tests/ui/asm/issue-92378.rs
diff --git a/src/test/ui/asm/issue-97490.rs b/tests/ui/asm/issue-97490.rs
index 37862cf34..37862cf34 100644
--- a/src/test/ui/asm/issue-97490.rs
+++ b/tests/ui/asm/issue-97490.rs
diff --git a/src/test/ui/asm/issue-99071.rs b/tests/ui/asm/issue-99071.rs
index bb6201861..bb6201861 100644
--- a/src/test/ui/asm/issue-99071.rs
+++ b/tests/ui/asm/issue-99071.rs
diff --git a/src/test/ui/asm/issue-99071.stderr b/tests/ui/asm/issue-99071.stderr
index 47386ffa4..47386ffa4 100644
--- a/src/test/ui/asm/issue-99071.stderr
+++ b/tests/ui/asm/issue-99071.stderr
diff --git a/src/test/ui/asm/issue-99122-2.rs b/tests/ui/asm/issue-99122-2.rs
index cfb9fd90a..cfb9fd90a 100644
--- a/src/test/ui/asm/issue-99122-2.rs
+++ b/tests/ui/asm/issue-99122-2.rs
diff --git a/src/test/ui/asm/issue-99122.rs b/tests/ui/asm/issue-99122.rs
index 744a563d3..744a563d3 100644
--- a/src/test/ui/asm/issue-99122.rs
+++ b/tests/ui/asm/issue-99122.rs
diff --git a/src/test/ui/asm/issue-99122.stderr b/tests/ui/asm/issue-99122.stderr
index 2758a4ac4..2758a4ac4 100644
--- a/src/test/ui/asm/issue-99122.stderr
+++ b/tests/ui/asm/issue-99122.stderr
diff --git a/src/test/ui/asm/may_unwind.rs b/tests/ui/asm/may_unwind.rs
index b9479c44b..b9479c44b 100644
--- a/src/test/ui/asm/may_unwind.rs
+++ b/tests/ui/asm/may_unwind.rs
diff --git a/src/test/ui/asm/naked-functions-ffi.rs b/tests/ui/asm/naked-functions-ffi.rs
index c8bee504d..c8bee504d 100644
--- a/src/test/ui/asm/naked-functions-ffi.rs
+++ b/tests/ui/asm/naked-functions-ffi.rs
diff --git a/src/test/ui/asm/naked-functions-ffi.stderr b/tests/ui/asm/naked-functions-ffi.stderr
index 908881b19..908881b19 100644
--- a/src/test/ui/asm/naked-functions-ffi.stderr
+++ b/tests/ui/asm/naked-functions-ffi.stderr
diff --git a/src/test/ui/asm/naked-functions-unused.aarch64.stderr b/tests/ui/asm/naked-functions-unused.aarch64.stderr
index 8d3c300e0..8d3c300e0 100644
--- a/src/test/ui/asm/naked-functions-unused.aarch64.stderr
+++ b/tests/ui/asm/naked-functions-unused.aarch64.stderr
diff --git a/src/test/ui/asm/naked-functions-unused.rs b/tests/ui/asm/naked-functions-unused.rs
index 044a0e5b9..044a0e5b9 100644
--- a/src/test/ui/asm/naked-functions-unused.rs
+++ b/tests/ui/asm/naked-functions-unused.rs
diff --git a/src/test/ui/asm/naked-functions-unused.x86_64.stderr b/tests/ui/asm/naked-functions-unused.x86_64.stderr
index 8d3c300e0..8d3c300e0 100644
--- a/src/test/ui/asm/naked-functions-unused.x86_64.stderr
+++ b/tests/ui/asm/naked-functions-unused.x86_64.stderr
diff --git a/src/test/ui/asm/naked-functions.rs b/tests/ui/asm/naked-functions.rs
index 2f3716ca7..2f3716ca7 100644
--- a/src/test/ui/asm/naked-functions.rs
+++ b/tests/ui/asm/naked-functions.rs
diff --git a/src/test/ui/asm/naked-functions.stderr b/tests/ui/asm/naked-functions.stderr
index f90967fbe..f90967fbe 100644
--- a/src/test/ui/asm/naked-functions.stderr
+++ b/tests/ui/asm/naked-functions.stderr
diff --git a/src/test/ui/asm/naked-invalid-attr.rs b/tests/ui/asm/naked-invalid-attr.rs
index ea8f560ff..ea8f560ff 100644
--- a/src/test/ui/asm/naked-invalid-attr.rs
+++ b/tests/ui/asm/naked-invalid-attr.rs
diff --git a/src/test/ui/asm/naked-invalid-attr.stderr b/tests/ui/asm/naked-invalid-attr.stderr
index e8ddccc85..e8ddccc85 100644
--- a/src/test/ui/asm/naked-invalid-attr.stderr
+++ b/tests/ui/asm/naked-invalid-attr.stderr
diff --git a/src/test/ui/asm/named-asm-labels.rs b/tests/ui/asm/named-asm-labels.rs
index 160dbf617..160dbf617 100644
--- a/src/test/ui/asm/named-asm-labels.rs
+++ b/tests/ui/asm/named-asm-labels.rs
diff --git a/src/test/ui/asm/named-asm-labels.s b/tests/ui/asm/named-asm-labels.s
index 071356d75..071356d75 100644
--- a/src/test/ui/asm/named-asm-labels.s
+++ b/tests/ui/asm/named-asm-labels.s
diff --git a/src/test/ui/asm/named-asm-labels.stderr b/tests/ui/asm/named-asm-labels.stderr
index c8380629e..c8380629e 100644
--- a/src/test/ui/asm/named-asm-labels.stderr
+++ b/tests/ui/asm/named-asm-labels.stderr
diff --git a/src/test/ui/asm/noreturn.rs b/tests/ui/asm/noreturn.rs
index 03fa087ae..03fa087ae 100644
--- a/src/test/ui/asm/noreturn.rs
+++ b/tests/ui/asm/noreturn.rs
diff --git a/src/test/ui/asm/reg-conflict.rs b/tests/ui/asm/reg-conflict.rs
index 983788a93..983788a93 100644
--- a/src/test/ui/asm/reg-conflict.rs
+++ b/tests/ui/asm/reg-conflict.rs
diff --git a/src/test/ui/asm/reg-conflict.stderr b/tests/ui/asm/reg-conflict.stderr
index 2395566de..2395566de 100644
--- a/src/test/ui/asm/reg-conflict.stderr
+++ b/tests/ui/asm/reg-conflict.stderr
diff --git a/src/test/ui/asm/type-check-1.rs b/tests/ui/asm/type-check-1.rs
index 59f7b36af..59f7b36af 100644
--- a/src/test/ui/asm/type-check-1.rs
+++ b/tests/ui/asm/type-check-1.rs
diff --git a/src/test/ui/asm/type-check-1.stderr b/tests/ui/asm/type-check-1.stderr
index 184513965..184513965 100644
--- a/src/test/ui/asm/type-check-1.stderr
+++ b/tests/ui/asm/type-check-1.stderr
diff --git a/src/test/ui/asm/type-check-4.rs b/tests/ui/asm/type-check-4.rs
index 666d2c677..666d2c677 100644
--- a/src/test/ui/asm/type-check-4.rs
+++ b/tests/ui/asm/type-check-4.rs
diff --git a/src/test/ui/asm/type-check-4.stderr b/tests/ui/asm/type-check-4.stderr
index c97cd171b..c97cd171b 100644
--- a/src/test/ui/asm/type-check-4.stderr
+++ b/tests/ui/asm/type-check-4.stderr
diff --git a/src/test/ui/asm/unpretty-expanded.rs b/tests/ui/asm/unpretty-expanded.rs
index 25cf1c3d7..25cf1c3d7 100644
--- a/src/test/ui/asm/unpretty-expanded.rs
+++ b/tests/ui/asm/unpretty-expanded.rs
diff --git a/src/test/ui/asm/unpretty-expanded.stdout b/tests/ui/asm/unpretty-expanded.stdout
index ab1b5f45e..ab1b5f45e 100644
--- a/src/test/ui/asm/unpretty-expanded.stdout
+++ b/tests/ui/asm/unpretty-expanded.stdout
diff --git a/src/test/ui/asm/x86_64/bad-clobber-abi.rs b/tests/ui/asm/x86_64/bad-clobber-abi.rs
index ddcd2065b..ddcd2065b 100644
--- a/src/test/ui/asm/x86_64/bad-clobber-abi.rs
+++ b/tests/ui/asm/x86_64/bad-clobber-abi.rs
diff --git a/src/test/ui/asm/x86_64/bad-clobber-abi.stderr b/tests/ui/asm/x86_64/bad-clobber-abi.stderr
index 46e91a395..46e91a395 100644
--- a/src/test/ui/asm/x86_64/bad-clobber-abi.stderr
+++ b/tests/ui/asm/x86_64/bad-clobber-abi.stderr
diff --git a/src/test/ui/asm/x86_64/bad-options.rs b/tests/ui/asm/x86_64/bad-options.rs
index f7c2cd6c5..f7c2cd6c5 100644
--- a/src/test/ui/asm/x86_64/bad-options.rs
+++ b/tests/ui/asm/x86_64/bad-options.rs
diff --git a/src/test/ui/asm/x86_64/bad-options.stderr b/tests/ui/asm/x86_64/bad-options.stderr
index e2351840e..e2351840e 100644
--- a/src/test/ui/asm/x86_64/bad-options.stderr
+++ b/tests/ui/asm/x86_64/bad-options.stderr
diff --git a/src/test/ui/asm/x86_64/bad-reg.rs b/tests/ui/asm/x86_64/bad-reg.rs
index f5728079a..f5728079a 100644
--- a/src/test/ui/asm/x86_64/bad-reg.rs
+++ b/tests/ui/asm/x86_64/bad-reg.rs
diff --git a/src/test/ui/asm/x86_64/bad-reg.stderr b/tests/ui/asm/x86_64/bad-reg.stderr
index 82b7ebd0f..82b7ebd0f 100644
--- a/src/test/ui/asm/x86_64/bad-reg.stderr
+++ b/tests/ui/asm/x86_64/bad-reg.stderr
diff --git a/src/test/ui/asm/x86_64/const.rs b/tests/ui/asm/x86_64/const.rs
index d523ae021..d523ae021 100644
--- a/src/test/ui/asm/x86_64/const.rs
+++ b/tests/ui/asm/x86_64/const.rs
diff --git a/src/test/ui/asm/x86_64/duplicate-options.fixed b/tests/ui/asm/x86_64/duplicate-options.fixed
index c5f14f5f7..c5f14f5f7 100644
--- a/src/test/ui/asm/x86_64/duplicate-options.fixed
+++ b/tests/ui/asm/x86_64/duplicate-options.fixed
diff --git a/src/test/ui/asm/x86_64/duplicate-options.rs b/tests/ui/asm/x86_64/duplicate-options.rs
index a8dce1f8d..a8dce1f8d 100644
--- a/src/test/ui/asm/x86_64/duplicate-options.rs
+++ b/tests/ui/asm/x86_64/duplicate-options.rs
diff --git a/src/test/ui/asm/x86_64/duplicate-options.stderr b/tests/ui/asm/x86_64/duplicate-options.stderr
index 53edf8fb9..53edf8fb9 100644
--- a/src/test/ui/asm/x86_64/duplicate-options.stderr
+++ b/tests/ui/asm/x86_64/duplicate-options.stderr
diff --git a/src/test/ui/asm/x86_64/interpolated-idents.rs b/tests/ui/asm/x86_64/interpolated-idents.rs
index c05633ae8..c05633ae8 100644
--- a/src/test/ui/asm/x86_64/interpolated-idents.rs
+++ b/tests/ui/asm/x86_64/interpolated-idents.rs
diff --git a/tests/ui/asm/x86_64/interpolated-idents.stderr b/tests/ui/asm/x86_64/interpolated-idents.stderr
new file mode 100644
index 000000000..80a8c8c77
--- /dev/null
+++ b/tests/ui/asm/x86_64/interpolated-idents.stderr
@@ -0,0 +1,46 @@
+error: the `nomem` and `readonly` options are mutually exclusive
+ --> $DIR/interpolated-idents.rs:13:13
+ |
+LL | $options($pure, $nomem, $readonly, $preserves_flags, $noreturn, $nostack, $att_syntax));
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | / m!(in out lateout inout inlateout const sym
+LL | | pure nomem readonly preserves_flags
+LL | | noreturn nostack att_syntax options);
+ | |___________________________________________- in this macro invocation
+ |
+ = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: the `pure` and `noreturn` options are mutually exclusive
+ --> $DIR/interpolated-idents.rs:13:13
+ |
+LL | $options($pure, $nomem, $readonly, $preserves_flags, $noreturn, $nostack, $att_syntax));
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | / m!(in out lateout inout inlateout const sym
+LL | | pure nomem readonly preserves_flags
+LL | | noreturn nostack att_syntax options);
+ | |___________________________________________- in this macro invocation
+ |
+ = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: asm outputs are not allowed with the `noreturn` option
+ --> $DIR/interpolated-idents.rs:10:32
+ |
+LL | asm!("", $in(x) x, $out(x) x, $lateout(x) x, $inout(x) x, $inlateout(x) x,
+ | ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^
+...
+LL | / m!(in out lateout inout inlateout const sym
+LL | | pure nomem readonly preserves_flags
+LL | | noreturn nostack att_syntax options);
+ | | -
+ | |___________________________________________|
+ | |___________________________________________in this macro invocation
+ | |___________________________________________in this macro invocation
+ | |___________________________________________in this macro invocation
+ | in this macro invocation
+ |
+ = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to 3 previous errors
+
diff --git a/src/test/ui/asm/x86_64/issue-82869.rs b/tests/ui/asm/x86_64/issue-82869.rs
index 67933666e..67933666e 100644
--- a/src/test/ui/asm/x86_64/issue-82869.rs
+++ b/tests/ui/asm/x86_64/issue-82869.rs
diff --git a/src/test/ui/asm/x86_64/issue-82869.stderr b/tests/ui/asm/x86_64/issue-82869.stderr
index 3cf9d6d1c..3cf9d6d1c 100644
--- a/src/test/ui/asm/x86_64/issue-82869.stderr
+++ b/tests/ui/asm/x86_64/issue-82869.stderr
diff --git a/src/test/ui/asm/x86_64/issue-89875.rs b/tests/ui/asm/x86_64/issue-89875.rs
index 669fd7e7e..669fd7e7e 100644
--- a/src/test/ui/asm/x86_64/issue-89875.rs
+++ b/tests/ui/asm/x86_64/issue-89875.rs
diff --git a/src/test/ui/asm/x86_64/issue-96797.rs b/tests/ui/asm/x86_64/issue-96797.rs
index 954f8c5cc..954f8c5cc 100644
--- a/src/test/ui/asm/x86_64/issue-96797.rs
+++ b/tests/ui/asm/x86_64/issue-96797.rs
diff --git a/src/test/ui/asm/x86_64/may_unwind.rs b/tests/ui/asm/x86_64/may_unwind.rs
index c11f0938d..c11f0938d 100644
--- a/src/test/ui/asm/x86_64/may_unwind.rs
+++ b/tests/ui/asm/x86_64/may_unwind.rs
diff --git a/src/test/ui/asm/x86_64/multiple-clobber-abi.rs b/tests/ui/asm/x86_64/multiple-clobber-abi.rs
index 06589431a..06589431a 100644
--- a/src/test/ui/asm/x86_64/multiple-clobber-abi.rs
+++ b/tests/ui/asm/x86_64/multiple-clobber-abi.rs
diff --git a/src/test/ui/asm/x86_64/parse-error.rs b/tests/ui/asm/x86_64/parse-error.rs
index 9aeb6b285..9aeb6b285 100644
--- a/src/test/ui/asm/x86_64/parse-error.rs
+++ b/tests/ui/asm/x86_64/parse-error.rs
diff --git a/src/test/ui/asm/x86_64/parse-error.stderr b/tests/ui/asm/x86_64/parse-error.stderr
index 57702c37b..57702c37b 100644
--- a/src/test/ui/asm/x86_64/parse-error.stderr
+++ b/tests/ui/asm/x86_64/parse-error.stderr
diff --git a/src/test/ui/asm/x86_64/srcloc.rs b/tests/ui/asm/x86_64/srcloc.rs
index 1135ad2e1..1135ad2e1 100644
--- a/src/test/ui/asm/x86_64/srcloc.rs
+++ b/tests/ui/asm/x86_64/srcloc.rs
diff --git a/src/test/ui/asm/x86_64/srcloc.stderr b/tests/ui/asm/x86_64/srcloc.stderr
index 8899c1b91..8899c1b91 100644
--- a/src/test/ui/asm/x86_64/srcloc.stderr
+++ b/tests/ui/asm/x86_64/srcloc.stderr
diff --git a/src/test/ui/asm/x86_64/sym.rs b/tests/ui/asm/x86_64/sym.rs
index 93ef4f090..93ef4f090 100644
--- a/src/test/ui/asm/x86_64/sym.rs
+++ b/tests/ui/asm/x86_64/sym.rs
diff --git a/src/test/ui/asm/x86_64/target-feature-attr.rs b/tests/ui/asm/x86_64/target-feature-attr.rs
index 14490c3e0..14490c3e0 100644
--- a/src/test/ui/asm/x86_64/target-feature-attr.rs
+++ b/tests/ui/asm/x86_64/target-feature-attr.rs
diff --git a/src/test/ui/asm/x86_64/target-feature-attr.stderr b/tests/ui/asm/x86_64/target-feature-attr.stderr
index c852726ee..c852726ee 100644
--- a/src/test/ui/asm/x86_64/target-feature-attr.stderr
+++ b/tests/ui/asm/x86_64/target-feature-attr.stderr
diff --git a/src/test/ui/asm/x86_64/type-check-2.rs b/tests/ui/asm/x86_64/type-check-2.rs
index 80b29ec87..80b29ec87 100644
--- a/src/test/ui/asm/x86_64/type-check-2.rs
+++ b/tests/ui/asm/x86_64/type-check-2.rs
diff --git a/src/test/ui/asm/x86_64/type-check-2.stderr b/tests/ui/asm/x86_64/type-check-2.stderr
index d9ca25519..d9ca25519 100644
--- a/src/test/ui/asm/x86_64/type-check-2.stderr
+++ b/tests/ui/asm/x86_64/type-check-2.stderr
diff --git a/src/test/ui/asm/x86_64/type-check-3.rs b/tests/ui/asm/x86_64/type-check-3.rs
index 89c849c75..89c849c75 100644
--- a/src/test/ui/asm/x86_64/type-check-3.rs
+++ b/tests/ui/asm/x86_64/type-check-3.rs
diff --git a/src/test/ui/asm/x86_64/type-check-3.stderr b/tests/ui/asm/x86_64/type-check-3.stderr
index 1baf50ff6..1baf50ff6 100644
--- a/src/test/ui/asm/x86_64/type-check-3.stderr
+++ b/tests/ui/asm/x86_64/type-check-3.stderr
diff --git a/src/test/ui/asm/x86_64/type-check-4.rs b/tests/ui/asm/x86_64/type-check-4.rs
index 3d5d3807c..3d5d3807c 100644
--- a/src/test/ui/asm/x86_64/type-check-4.rs
+++ b/tests/ui/asm/x86_64/type-check-4.rs
diff --git a/src/test/ui/asm/x86_64/type-check-4.stderr b/tests/ui/asm/x86_64/type-check-4.stderr
index 3875bcc21..3875bcc21 100644
--- a/src/test/ui/asm/x86_64/type-check-4.stderr
+++ b/tests/ui/asm/x86_64/type-check-4.stderr
diff --git a/src/test/ui/asm/x86_64/type-check-5.rs b/tests/ui/asm/x86_64/type-check-5.rs
index 8198df910..1d579ccc9 100644
--- a/src/test/ui/asm/x86_64/type-check-5.rs
+++ b/tests/ui/asm/x86_64/type-check-5.rs
@@ -22,11 +22,10 @@ fn main() {
// Outputs require mutable places
let v: Vec<u64> = vec![0, 1, 2];
+ //~^ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
asm!("{}", in(reg) v[0]);
asm!("{}", out(reg) v[0]);
- //~^ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
asm!("{}", inout(reg) v[0]);
- //~^ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
// Sym operands must point to a function or static
diff --git a/tests/ui/asm/x86_64/type-check-5.stderr b/tests/ui/asm/x86_64/type-check-5.stderr
new file mode 100644
index 000000000..7970e76d6
--- /dev/null
+++ b/tests/ui/asm/x86_64/type-check-5.stderr
@@ -0,0 +1,46 @@
+error[E0381]: used binding `x` isn't initialized
+ --> $DIR/type-check-5.rs:15:28
+ |
+LL | let x: u64;
+ | - binding declared here but left uninitialized
+LL | asm!("{}", in(reg) x);
+ | ^ `x` used here but it isn't initialized
+ |
+help: consider assigning a value
+ |
+LL | let x: u64 = 0;
+ | +++
+
+error[E0381]: used binding `y` isn't initialized
+ --> $DIR/type-check-5.rs:18:9
+ |
+LL | let mut y: u64;
+ | ----- binding declared here but left uninitialized
+LL | asm!("{}", inout(reg) y);
+ | ^^^^^^^^^^^^^^^^^^^^^^^^ `y` used here but it isn't initialized
+ |
+help: consider assigning a value
+ |
+LL | let mut y: u64 = 0;
+ | +++
+
+error[E0596]: cannot borrow `v` as mutable, as it is not declared as mutable
+ --> $DIR/type-check-5.rs:24:13
+ |
+LL | let v: Vec<u64> = vec![0, 1, 2];
+ | ^ not mutable
+...
+LL | asm!("{}", out(reg) v[0]);
+ | - cannot borrow as mutable
+LL | asm!("{}", inout(reg) v[0]);
+ | - cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | let mut v: Vec<u64> = vec![0, 1, 2];
+ | +++
+
+error: aborting due to 3 previous errors
+
+Some errors have detailed explanations: E0381, E0596.
+For more information about an error, try `rustc --explain E0381`.