about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/run-make/issue-125484-used-dependencies/dependency.rs1
-rw-r--r--tests/run-make/issue-125484-used-dependencies/main.rs9
-rw-r--r--tests/run-make/issue-125484-used-dependencies/rmake.rs18
-rw-r--r--tests/ui/extern-flag/empty-extern-arg.stderr9
4 files changed, 36 insertions, 1 deletions
diff --git a/tests/run-make/issue-125484-used-dependencies/dependency.rs b/tests/run-make/issue-125484-used-dependencies/dependency.rs
new file mode 100644
index 00000000000..d15abba5976
--- /dev/null
+++ b/tests/run-make/issue-125484-used-dependencies/dependency.rs
@@ -0,0 +1 @@
+// Empty
diff --git a/tests/run-make/issue-125484-used-dependencies/main.rs b/tests/run-make/issue-125484-used-dependencies/main.rs
new file mode 100644
index 00000000000..0c1a1f8208a
--- /dev/null
+++ b/tests/run-make/issue-125484-used-dependencies/main.rs
@@ -0,0 +1,9 @@
+pub type Foo = something::same::Thing;
+
+mod something {
+    pub mod same {
+        pub struct Thing;
+    }
+}
+
+fn main() {}
diff --git a/tests/run-make/issue-125484-used-dependencies/rmake.rs b/tests/run-make/issue-125484-used-dependencies/rmake.rs
new file mode 100644
index 00000000000..b75e82b42db
--- /dev/null
+++ b/tests/run-make/issue-125484-used-dependencies/rmake.rs
@@ -0,0 +1,18 @@
+// Non-regression test for issues #125474, #125484, #125646, with the repro taken from #125484. Some
+// queries use "used dependencies" while others use "speculatively loaded dependencies", and an
+// indexing ICE appeared in some cases when these were unexpectedly used in the same context.
+
+// FIXME: this should probably be a UI test instead of a run-make test, but I *cannot* find a way to
+// make compiletest annotations reproduce the ICE with the minimizations from issues #125474 and
+// #125484.
+
+use run_make_support::{rustc, tmp_dir};
+
+fn main() {
+    // The dependency is not itself significant, apart from sharing a name with one of main's
+    // modules.
+    rustc().crate_name("same").crate_type("rlib").input("dependency.rs").run();
+
+    // Here, an ICE would happen when building the linker command.
+    rustc().input("main.rs").extern_("same", tmp_dir().join("libsame.rlib")).run();
+}
diff --git a/tests/ui/extern-flag/empty-extern-arg.stderr b/tests/ui/extern-flag/empty-extern-arg.stderr
index 6ad3effe0e2..2785b12a0ae 100644
--- a/tests/ui/extern-flag/empty-extern-arg.stderr
+++ b/tests/ui/extern-flag/empty-extern-arg.stderr
@@ -1,6 +1,13 @@
 error: extern location for std does not exist: 
 
+error: `#[panic_handler]` function required, but not found
+
+error: unwinding panics are not supported without std
+   |
+   = help: using nightly cargo, use -Zbuild-std with panic="abort" to avoid unwinding
+   = note: since the core library is usually precompiled with panic="unwind", rebuilding your crate with panic="abort" may not be enough to fix the problem
+
 error: requires `sized` lang_item
 
-error: aborting due to 2 previous errors
+error: aborting due to 4 previous errors