diff --git a/README.md b/README.md index cbaf276..f7a5d29 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ fixture, the third from fuzzing edits and replaying ten crates' git histories. - [`docs/ur-queries.md`](docs/ur-queries.md): the bugs' patterns, and closed bugs' patterns, as Ur queries over rustc's source - [`docs/shadow-mode.md`](docs/shadow-mode.md): checking reuse inside rustc, and what exists today - [`docs/untracked-reads.md`](docs/untracked-reads.md): reporting reads of untracked state inside rustc +- [`docs/props.md`](docs/props.md): MIR validation, optimization levels and the new trait solver on the same corpus - [`docs/plan.md`](docs/plan.md): the plan the work followed, with the properties ## An instrumented compiler diff --git a/docs/hunt.md b/docs/hunt.md index 91a813e..0393e65 100644 --- a/docs/hunt.md +++ b/docs/hunt.md @@ -31,7 +31,7 @@ with `-Zthreads=8`. `rustc/check.sh wide` runs the ordinary checks. | 5 | six untracked options change results incremental compilation reuses; with `-Zno-leak-check`, a rebuild accepts a program a clean build rejects | **looks new**; the first three found by a query written from a closed bug and an option audit ([`ur-queries.md`](ur-queries.md)), `-Zno-leak-check`, `-C extra-filename` and `-Zfuture-incompat-test` by reporting untracked reads ([`untracked-reads.md`](untracked-reads.md)); report drafted | | 6 | reused object code keeps the previous checksum of an edited source file in its debuginfo, and with `-Zembed-source` the previous file; with optimizations, ThinLTO symbol names then differ from a clean build | **looks new**; found by the fuzzer at `-Copt-level=2`; root cause found, since 1.44 (#69718); report drafted and a regression test (`hunt/tests/incr-debuginfo-embedded-source`, failing: no fix) | | 7 | warnings from inline assembly are not shown again when an incremental rebuild reuses the codegen unit | **looks new**; found while checking reused codegen units ([`shadow-mode.md`](shadow-mode.md)); on 1.60.0 through the nightly; report drafted ([draft](hunt/issue-asm-warnings-reused-cgu.md)) and a regression test (`hunt/tests/incr-asm-warning-reused`, failing: no fix) | -| 8 | with `-Zmir-opt-level=3` and debuginfo, an incremental rebuild encodes an allocation twice where a clean build encodes it once | **looks new**; found by the fuzzer at `-Zmir-opt-level=4` and named by the reuse check, reduced to three lines; on 1.60.0 through the nightly; report drafted ([draft](hunt/issue-inlined-alloc-identity.md)), no fix | +| 8 | with `-Zmir-opt-level=3`, an incremental rebuild encodes an allocation from inlined `core` MIR twice where a clean build encodes it once | **looks new**; found by the fuzzer at `-Zmir-opt-level=4` and named by the reuse check, reduced to one line; on 1.60.0 through the nightly; report drafted ([draft](hunt/issue-inlined-alloc-identity.md)), no fix | Findings 1 and 2 are single-threaded: an ordinary `cargo build`, an edit, another `cargo build`, and the metadata differs from a clean build of the edited source. Both come diff --git a/docs/hunt/issue-inlined-alloc-identity.md b/docs/hunt/issue-inlined-alloc-identity.md index c669810..e1d9ef5 100644 --- a/docs/hunt/issue-inlined-alloc-identity.md +++ b/docs/hunt/issue-inlined-alloc-identity.md @@ -1,4 +1,4 @@ -# With `-Zmir-opt-level=3` and debuginfo, an incremental rebuild encodes an allocation twice where a clean build encodes it once +# With `-Zmir-opt-level=3`, an incremental rebuild encodes an allocation from inlined `core` MIR twice where a clean build encodes it once