1 include ../../run-make-fulldeps/tools.mk
3 # This test case creates a situation where the crate loader would run
4 # into an ICE when confronted with an invalid setup where it cannot
5 # find the dependency of a direct dependency.
7 # The test case makes sure that the compiler produces the expected
8 # error message but does not ICE immediately after.
10 # See https://github.com/rust-lang/rust/issues/83045
12 # This is a platform-independent issue, no need to waste time testing
17 # NOTE: We use BARE_RUSTC below so that the compiler can't find liba.rlib
18 # If we used RUSTC the additional '-L TMPDIR' option would allow rustc to
19 # actually find the crate.
21 # We check that we get the expected error message
22 # But that we do not get an ICE
25 $(RUSTC) --crate-name=a --crate-type=rlib a.rs --verbose
26 $(RUSTC) --crate-name=b --crate-type=rlib --extern a=$(TMPDIR)/liba.rlib b.rs --verbose
27 $(BARE_RUSTC) --out-dir $(TMPDIR) \
28 --extern b=$(TMPDIR)/libb.rlib \
31 c.rs 2>&1 | tee $(TMPDIR)/output.txt || exit 0
32 $(CGREP) E0463 < $(TMPDIR)/output.txt
33 $(CGREP) -v "internal compiler error" < $(TMPDIR)/output.txt