summaryrefslogtreecommitdiffstats
path: root/tests/run-make/panic-impl-transitive
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/panic-impl-transitive')
-rw-r--r--tests/run-make/panic-impl-transitive/Makefile7
-rw-r--r--tests/run-make/panic-impl-transitive/panic-impl-consumer.rs5
-rw-r--r--tests/run-make/panic-impl-transitive/panic-impl-provider.rs9
3 files changed, 21 insertions, 0 deletions
diff --git a/tests/run-make/panic-impl-transitive/Makefile b/tests/run-make/panic-impl-transitive/Makefile
new file mode 100644
index 000000000..9a271a22e
--- /dev/null
+++ b/tests/run-make/panic-impl-transitive/Makefile
@@ -0,0 +1,7 @@
+include ../tools.mk
+
+# NOTE we use --emit=llvm-ir to avoid running the linker (linking will fail because there's no main
+# in this crate)
+all:
+ $(RUSTC) panic-impl-provider.rs
+ $(RUSTC) panic-impl-consumer.rs -C panic=abort --emit=llvm-ir -L $(TMPDIR)
diff --git a/tests/run-make/panic-impl-transitive/panic-impl-consumer.rs b/tests/run-make/panic-impl-transitive/panic-impl-consumer.rs
new file mode 100644
index 000000000..82a98b12d
--- /dev/null
+++ b/tests/run-make/panic-impl-transitive/panic-impl-consumer.rs
@@ -0,0 +1,5 @@
+#![no_std]
+#![no_main]
+
+// this crate provides the `panic_impl` lang item so we don't need to define it here
+extern crate panic_impl_provider;
diff --git a/tests/run-make/panic-impl-transitive/panic-impl-provider.rs b/tests/run-make/panic-impl-transitive/panic-impl-provider.rs
new file mode 100644
index 000000000..f1b9873c8
--- /dev/null
+++ b/tests/run-make/panic-impl-transitive/panic-impl-provider.rs
@@ -0,0 +1,9 @@
+#![crate_type = "rlib"]
+#![no_std]
+
+use core::panic::PanicInfo;
+
+#[panic_handler]
+fn panic(info: &PanicInfo) -> ! {
+ loop {}
+}