about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDianQK <dianqk@dianqk.net>2024-10-22 10:46:10 +0800
committerDianQK <dianqk@dianqk.net>2024-10-23 19:01:38 +0800
commit6570a6fe92002d352fecbaad0176c678030c6d2e (patch)
treec464d6743ce587a1350d113a0cbf0b5ed0bc39d2
parent916e9ced404f276e90171d7852d436b6ca92df56 (diff)
downloadrust-6570a6fe92002d352fecbaad0176c678030c6d2e.tar.gz
rust-6570a6fe92002d352fecbaad0176c678030c6d2e.zip
Add a test case for #131164
-rw-r--r--tests/run-make/rust-lld-link-script-provide/main.rs7
-rw-r--r--tests/run-make/rust-lld-link-script-provide/rmake.rs18
-rw-r--r--tests/run-make/rust-lld-link-script-provide/script.t1
3 files changed, 26 insertions, 0 deletions
diff --git a/tests/run-make/rust-lld-link-script-provide/main.rs b/tests/run-make/rust-lld-link-script-provide/main.rs
new file mode 100644
index 00000000000..5c19e7a4bbf
--- /dev/null
+++ b/tests/run-make/rust-lld-link-script-provide/main.rs
@@ -0,0 +1,7 @@
+#[no_mangle]
+fn foo() {}
+
+#[no_mangle]
+fn bar() {}
+
+fn main() {}
diff --git a/tests/run-make/rust-lld-link-script-provide/rmake.rs b/tests/run-make/rust-lld-link-script-provide/rmake.rs
new file mode 100644
index 00000000000..e78a411bc15
--- /dev/null
+++ b/tests/run-make/rust-lld-link-script-provide/rmake.rs
@@ -0,0 +1,18 @@
+// This test ensures that the “symbol not found” error does not occur
+// when the symbols in the `PROVIDE` of the link script can be eliminated.
+// This is a regression test for #131164.
+
+//@ needs-rust-lld
+//@ only-x86_64-unknown-linux-gnu
+
+use run_make_support::rustc;
+
+fn main() {
+    rustc()
+        .input("main.rs")
+        .arg("-Zlinker-features=+lld")
+        .arg("-Clink-self-contained=+linker")
+        .arg("-Zunstable-options")
+        .link_arg("-Tscript.t")
+        .run();
+}
diff --git a/tests/run-make/rust-lld-link-script-provide/script.t b/tests/run-make/rust-lld-link-script-provide/script.t
new file mode 100644
index 00000000000..4c4c6ddfc36
--- /dev/null
+++ b/tests/run-make/rust-lld-link-script-provide/script.t
@@ -0,0 +1 @@
+PROVIDE(foo = bar);