about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-11-29 22:43:19 +0100
committerGitHub <noreply@github.com>2022-11-29 22:43:19 +0100
commit581ca3e836083bfbb2da888809d3ea16a4440c94 (patch)
tree82d882263b78a6a52685db542e832375c5d4e4e6 /src/test
parent804fa66a027a5813a30197bef9da5afb1dc104a9 (diff)
parent63915be212d0c054c764b7dd5c408e2c10af219c (diff)
downloadrust-581ca3e836083bfbb2da888809d3ea16a4440c94.tar.gz
rust-581ca3e836083bfbb2da888809d3ea16a4440c94.zip
Rollup merge of #105023 - tmiasko:asm-sym-static-reachable, r=wesleywiser
Statics used in reachable function's inline asm are reachable

Fixes #104925.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/codegen-units/item-collection/asm-sym.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/test/codegen-units/item-collection/asm-sym.rs b/src/test/codegen-units/item-collection/asm-sym.rs
new file mode 100644
index 00000000000..8bafb95bc16
--- /dev/null
+++ b/src/test/codegen-units/item-collection/asm-sym.rs
@@ -0,0 +1,20 @@
+// needs-asm-support
+// compile-flags: -Ccodegen-units=1 -Zprint-mono-items=lazy --crate-type=lib
+
+#[inline(always)]
+pub unsafe fn f() {
+    //~ MONO_ITEM static f::S @@ asm_sym-cgu.0[External]
+    static S: usize = 1;
+    //~ MONO_ITEM fn f::fun @@ asm_sym-cgu.0[External]
+    fn fun() {}
+    core::arch::asm!("/* {0} {1} */", sym S, sym fun);
+}
+
+//~ MONO_ITEM fn g @@ asm_sym-cgu.0[External]
+pub unsafe fn g() {
+    //~ MONO_ITEM static g::S @@ asm_sym-cgu.0[Internal]
+    static S: usize = 2;
+    //~ MONO_ITEM fn g::fun @@ asm_sym-cgu.0[Internal]
+    fn fun() {}
+    core::arch::asm!("/* {0} {1} */", sym S, sym fun);
+}