diff options
Diffstat (limited to 'tests/run-make/issue-40535')
-rw-r--r-- | tests/run-make/issue-40535/Makefile | 13 | ||||
-rw-r--r-- | tests/run-make/issue-40535/bar.rs | 3 | ||||
-rw-r--r-- | tests/run-make/issue-40535/baz.rs | 1 | ||||
-rw-r--r-- | tests/run-make/issue-40535/foo.rs | 4 |
4 files changed, 21 insertions, 0 deletions
diff --git a/tests/run-make/issue-40535/Makefile b/tests/run-make/issue-40535/Makefile new file mode 100644 index 000000000..155c88252 --- /dev/null +++ b/tests/run-make/issue-40535/Makefile @@ -0,0 +1,13 @@ +include ../tools.mk + +# The ICE occurred in the following situation: +# * `foo` declares `extern crate bar, baz`, depends only on `bar` (forgetting `baz` in `Cargo.toml`) +# * `bar` declares and depends on `extern crate baz` +# * All crates built in metadata-only mode (`cargo check`) +all: + # cc https://github.com/rust-lang/rust/issues/40623 + $(RUSTC) baz.rs --emit=metadata + $(RUSTC) bar.rs --emit=metadata --extern baz=$(TMPDIR)/libbaz.rmeta + $(RUSTC) foo.rs --emit=metadata --extern bar=$(TMPDIR)/libbar.rmeta 2>&1 | \ + $(CGREP) -v "unexpectedly panicked" + # ^ Succeeds if it doesn't find the ICE message diff --git a/tests/run-make/issue-40535/bar.rs b/tests/run-make/issue-40535/bar.rs new file mode 100644 index 000000000..b02b28f59 --- /dev/null +++ b/tests/run-make/issue-40535/bar.rs @@ -0,0 +1,3 @@ +#![crate_type = "lib"] + +extern crate baz; diff --git a/tests/run-make/issue-40535/baz.rs b/tests/run-make/issue-40535/baz.rs new file mode 100644 index 000000000..83be6e807 --- /dev/null +++ b/tests/run-make/issue-40535/baz.rs @@ -0,0 +1 @@ +#![crate_type = "lib"] diff --git a/tests/run-make/issue-40535/foo.rs b/tests/run-make/issue-40535/foo.rs new file mode 100644 index 000000000..270202664 --- /dev/null +++ b/tests/run-make/issue-40535/foo.rs @@ -0,0 +1,4 @@ +#![crate_type = "lib"] + +extern crate bar; +extern crate baz; |