Rollup of 7 pull requests - #161990
Conversation
safety comments in alloc this was pain and it's not even half i think oepsje woepsje
While fuzzing I noticed we would now ICE in two places when encountering an empty or filled `#![rustc_never_type_options()]` attr: compiler/rustc_passes/src/check_attr.rs:160:33: builtin attribute "rustc_never_type_options" not handled by `CheckAttrVisitor` compiler/rustc_attr_parsing/src/validate_attr.rs:42:17: assertion failed: lint_attrs.contains(name) So remove these two entries after which we will just error with `error: cannot find attribute`
After the first move_suffix in Root::split_off, the source and result trees share values through two temporarily invalid structures. If a later key comparison panics, unwinding leaves the map with a stale length over a partially detached tree, and consuming iteration then double-frees the shared values, reachable from safe code. Guard the descent loop with a mem::DropGuard that aborts on unwind, armed before the first move_suffix and dismissed once the borders are fixed.
…rfonthey Enforce safety comments on `alloc` cc @clarfonthey, @workingjubilee. Following up from rust-lang#160824. I spent a painfully long time going over the comments and ensuring there's nothing too awful ^^ r? clarfonthey
…anic-safety, r=nia-e Abort instead of unwinding out of an inconsistent BTreeMap::split_off Fixes rust-lang#158165. Supersedes rust-lang#161784, which I had to abandon after a bad force-push from a shallow clone left its head detached. `BTreeMap::split_off` runs the caller's `Ord`/`Borrow` impl via `search_node` inside `Root::split_off`'s descent. After the first `move_suffix`, the two roots alias the same values through structurally invalid trees until the borders are fixed; a comparator panic there unwinds with a stale length and double-frees on later iteration or drop. It is reachable from `#![forbid(unsafe_code)]` on stable (reproducer on the issue). Guard the descent loop with an abort-on-panic `PanicGuard`, as `btree::mem::replace` already does. `catch_unwind` isnt available in `alloc` (no_std), and I kept an inline guard rather than the unstable `DropGuard`. It is armed once before the loop; the first `search_node` stays outside it, since a panic there can still unwind safely (nothing has moved yet). Verified with Miri: the reproducer goes from a double-free to a clean abort, and normal multi-level splits are unaffected. Adds a happy-path regression test. Credit to @ostrowr for the report and to rust-lang#158710 for the original approach. r? @nia-e
…iguous-glob-subtrait, r=fmease Preserve ambiguous glob lint for subtrait method picks Fixes rust-lang#157965
…onathanbrouwer rework handling of doc attributes on macro calls rust-lang#160904 but with the fcw changes removed r? @JonathanBrouwer
…g, r=fmease rustdoc: Take into account edition information for keyword highlighting Fixes rust-lang#148221. The only thing that was missing was passing down an `Edition` to the highlighter (and adding tests). r? @fmease
remove rustc_never_type_options attr remnants While fuzzing I noticed we would now ICE in two places when encountering an empty or filled `#![rustc_never_type_options()]` attr: compiler/rustc_passes/src/check_attr.rs:160:33: builtin attribute "rustc_never_type_options" not handled by `CheckAttrVisitor` compiler/rustc_attr_parsing/src/validate_attr.rs:42:17: assertion failed: lint_attrs.contains(name) So remove these two entries after which we will just error with `error: cannot find attribute` r? @WaffleLapkin
… r=fmease Move rustdoc ui doctests into the right testsuite When working on rust-lang#161944 (comment), I realized that a lot of doctests in `rustdoc-html` testsuite were not in the correct testsuite, so moving them in the right location. Because you're the one who made me realize it, here goes @fmease (thanks!) :p r? @fmease
|
@bors r+ p=5 |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing fd7ed57 (parent) -> 4545c83 (this PR) Test differencesShow 2844 test diffsStage 1
Stage 2
Additionally, 2793 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 4545c8369286cd331ab9d6250c25630a69d6f790 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (4545c83): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 0.9%, secondary -2.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 2.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 476.157s -> 474.853s (-0.27%) |
|
📌 Perf builds for each rolled up PR:
parent commit: fd7ed57dfd In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Successful merges:
alloc#160941 (Enforce safety comments onalloc)Failed merges:
drop_guardin some places in {core,alloc,std} #161702 (Usedrop_guardin some places in {core,alloc,std})r? @ghost
Create a similar rollup