diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/run-make/incr-prev-body-beyond-eof/Makefile | 19 | ||||
-rw-r--r-- | src/test/run-make/incr-prev-body-beyond-eof/a.rs | 16 | ||||
-rw-r--r-- | src/test/run-make/incr-prev-body-beyond-eof/b.rs | 12 |
3 files changed, 47 insertions, 0 deletions
diff --git a/src/test/run-make/incr-prev-body-beyond-eof/Makefile b/src/test/run-make/incr-prev-body-beyond-eof/Makefile new file mode 100644 index 000000000..24eea3aca --- /dev/null +++ b/src/test/run-make/incr-prev-body-beyond-eof/Makefile @@ -0,0 +1,19 @@ +# ignore-none no-std is not supported +# ignore-nvptx64-nvidia-cuda FIXME: can't find crate for `std` + +include ../../run-make-fulldeps/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) diff --git a/src/test/run-make/incr-prev-body-beyond-eof/a.rs b/src/test/run-make/incr-prev-body-beyond-eof/a.rs new file mode 100644 index 000000000..ca70fb563 --- /dev/null +++ b/src/test/run-make/incr-prev-body-beyond-eof/a.rs @@ -0,0 +1,16 @@ +fn main() { + // foo must be used. + foo(); +} + +// For this test to operate correctly, foo's body must start on exactly the same +// line and column and have the exact same length in bytes in a.rs and b.rs. In +// a.rs, the body must end on a line number which does not exist in b.rs. +// Basically, avoid modifying this file, including adding or removing whitespace! +fn foo() { + assert_eq!(1, 1); + + + + +} diff --git a/src/test/run-make/incr-prev-body-beyond-eof/b.rs b/src/test/run-make/incr-prev-body-beyond-eof/b.rs new file mode 100644 index 000000000..a272e44a6 --- /dev/null +++ b/src/test/run-make/incr-prev-body-beyond-eof/b.rs @@ -0,0 +1,12 @@ +fn main() { + // foo must be used. + foo(); +} + +// For this test to operate correctly, foo's body must start on exactly the same +// line and column and have the exact same length in bytes in a.rs and b.rs. In +// a.rs, the body must end on a line number which does not exist in b.rs. +// Basically, avoid modifying this file, including adding or removing whitespace! +fn foo() { + assert_eq!(1, 1);//// +} |