about summary refs log tree commit diff
path: root/tests/ui/instrument-coverage/link-regex-crate-with-instrument-coverage-85461.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/instrument-coverage/link-regex-crate-with-instrument-coverage-85461.rs')
-rw-r--r--tests/ui/instrument-coverage/link-regex-crate-with-instrument-coverage-85461.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/instrument-coverage/link-regex-crate-with-instrument-coverage-85461.rs b/tests/ui/instrument-coverage/link-regex-crate-with-instrument-coverage-85461.rs
new file mode 100644
index 00000000000..ffb535e69ee
--- /dev/null
+++ b/tests/ui/instrument-coverage/link-regex-crate-with-instrument-coverage-85461.rs
@@ -0,0 +1,29 @@
+// https://github.com/rust-lang/rust/issues/85461
+//@ compile-flags: -Cinstrument-coverage -Ccodegen-units=4 --crate-type dylib -Copt-level=0
+//@ build-pass
+//@ needs-profiler-runtime
+//@ needs-dynamic-linking
+
+// Regression test for #85461 where MSVC sometimes fails to link instrument-coverage binaries
+// with dead code and #[inline(always)].
+
+#![allow(dead_code)]
+
+mod foo {
+    #[inline(always)]
+    pub fn called() { }
+
+    fn uncalled() { }
+}
+
+pub mod bar {
+    pub fn call_me() {
+        super::foo::called();
+    }
+}
+
+pub mod baz {
+    pub fn call_me() {
+        super::foo::called();
+    }
+}