rewrite incr-prev-body-beyond-eof in rmake
This commit is contained in:
parent
b4834a1c98
commit
d553d5ba2d
3 changed files with 32 additions and 20 deletions
|
|
@ -79,7 +79,6 @@ run-make/inaccessible-temp-dir/Makefile
|
|||
run-make/include_bytes_deps/Makefile
|
||||
run-make/incr-add-rust-src-component/Makefile
|
||||
run-make/incr-foreign-head-span/Makefile
|
||||
run-make/incr-prev-body-beyond-eof/Makefile
|
||||
run-make/incremental-debugger-visualizer/Makefile
|
||||
run-make/incremental-session-fail/Makefile
|
||||
run-make/inline-always-many-cgu/Makefile
|
||||
|
|
|
|||
|
|
@ -1,19 +0,0 @@
|
|||
# ignore-none no-std is not supported
|
||||
# ignore-nvptx64-nvidia-cuda FIXME: can't find crate for `std`
|
||||
|
||||
include ../tools.mk
|
||||
|
||||
# Tests that we don't ICE during incremental compilation after modifying a
|
||||
# function span such that its previous end line exceeds the number of lines
|
||||
# in the new file, but its start line/column and length remain the same.
|
||||
|
||||
SRC=$(TMPDIR)/src
|
||||
INCR=$(TMPDIR)/incr
|
||||
|
||||
all:
|
||||
mkdir $(SRC)
|
||||
mkdir $(INCR)
|
||||
cp a.rs $(SRC)/main.rs
|
||||
$(RUSTC) -C incremental=$(INCR) $(SRC)/main.rs --target $(TARGET)
|
||||
cp b.rs $(SRC)/main.rs
|
||||
$(RUSTC) -C incremental=$(INCR) $(SRC)/main.rs --target $(TARGET)
|
||||
32
tests/run-make/incr-prev-body-beyond-eof/rmake.rs
Normal file
32
tests/run-make/incr-prev-body-beyond-eof/rmake.rs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// After modifying the span of a function, if the length of
|
||||
// the span remained the same but the end line number became different,
|
||||
// this would cause an internal compiler error (ICE), fixed in #76256.
|
||||
|
||||
// This test compiles main.rs twice, first with end line 16 and
|
||||
// then with end line 12. If compilation is successful, the end line
|
||||
// was hashed by rustc in addition to the span length, and the fix still
|
||||
// works.
|
||||
|
||||
// FIXME: Ignore flags temporarily disabled for the test.
|
||||
// ignore-none
|
||||
// ignore-nvptx64-nvidia-cuda
|
||||
|
||||
use run_make_support::{rustc, target, tmp_dir};
|
||||
use std::fs;
|
||||
|
||||
fn main() {
|
||||
fs::create_dir(tmp_dir().join("src"));
|
||||
fs::create_dir(tmp_dir().join("incr"));
|
||||
fs::copy("a.rs", tmp_dir().join("main.rs"));
|
||||
rustc()
|
||||
.incremental(tmp_dir().join("incr"))
|
||||
.input(tmp_dir().join("src/main.rs"))
|
||||
.target(target())
|
||||
.run();
|
||||
fs::copy("b.rs", tmp_dir().join("main.rs"));
|
||||
rustc()
|
||||
.incremental(tmp_dir().join("incr"))
|
||||
.input(tmp_dir().join("src/main.rs"))
|
||||
.target(target())
|
||||
.run();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue