Skip to content

Rollup of 14 pull requests - #161605

Closed
JonathanBrouwer wants to merge 87 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-JBZhFZL
Closed

Rollup of 14 pull requests#161605
JonathanBrouwer wants to merge 87 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-JBZhFZL

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

blyxyas and others added 30 commits July 2, 2026 17:10
Redundant struct with only one usecase in a single place while keeping
the actual implementation of `Debug` in `CStore` empty.
Record the current CLI and DAP behavior for interpreter errors and post-exit commands before changing the debugger lifecycle semantics.

Temporarily relax the expected process exit status for fixtures whose pre-change behavior lets Miri termination escape the debugger: UB fixtures exit with Miri's error status, and the nonzero-exit fixture exits before returning to the prompt. The implementation commit removes this relaxation after Priroda turns those cases into clean debugger states.
Record normal program termination as debugger state instead of letting the Miri termination escape the session.

This lets CLI commands after exit report the saved code and lets the nonzero-exit fixture return through the prompt without relaxing the process status.
Report non-exit interpreter errors as debugger stops instead of terminating
the Priroda session.

Execution commands may still be issued after an exception stop. They ask Miri
to advance again and report the resulting stop, which can be another exception
at the same location.
[Priroda] Handle interpreter errors and program exit
With this,
we get C dep remap for free when building in rustc bootstrap:

See

* rust-lang#161049
* rust-lang/cargo#17309
* rust-lang/cc-rs#1794
Record the current CLI behavior before adding the `next` command.
Add stack-depth based source step-over support and expose it through the CLI `next` command.

The CLI fixture now shows `next` being accepted instead of rejected. DAP keeps the baseline behavior until a later commit wires the same helper into the DAP frontend.
Add CLI fixtures for same-line `next` behavior and for the unsupported `out`
command before source step-out is implemented.

The same-line fixture keeps its physical line layout with `rustfmt::skip`
because that layout is the behavior under test.
Add source step-out support and expose it through the CLI `out` command.

The command runs until execution reaches a source location in a shallower stack frame.
Record the current DAP behavior before wiring `next` to source step-over.
Route DAP `next` through the source step-over helper and keep `stepIn` on the source step-in path.

The fixture now shows DAP `next` stopping after the call instead of inside the callee.
Record the current DAP behavior before supporting `stepOut` requests.
Route DAP `stepOut` through the source step-out helper.

The fixture now shows `stepOut` returning from the callee to the caller instead of being rejected as unsupported.
Add DAP coverage for `next` stepping over a call and CLI coverage for running
`next` from a source breakpoint on a call line.

The CLI fixture records the old repeated-breakpoint behavior before the
following fix changes stepping breakpoint handling.
Suppress the source breakpoint a stepping command started from while that command is leaving the line.

The CLI breakpoint fixture now shows `next` stopping on the following source line instead of reporting the same breakpoint again.
Record repeated DAP `next` stops around a call followed by a same-line helper.
Keep source `next` moving when a same-frame return span points back to an earlier line in the same file.

The repeated DAP `next` fixture now stops after the same-line helper instead of stopping on the `main` function header.
Record DAP `stepOut` from the entry user frame before changing step-out to use user frames.

The fixture shows the current raw-stack behavior stopping in Rust runtime code.
Track source step-out using user-relevant frame depth instead of raw interpreter stack depth.

DAP stepOut from the entry user frame now returns an error and leaves the selected frame unchanged, while step-out from a callee still returns to the caller.
Document that source step-in only enters calls with distinct displayed source positions, and that stepOut operates on user frames.
rust does not emit `byval` here (also not for normal structs) while
clang does.
@rustbot rustbot added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Aug 23, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 92703b4 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 23, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 23, 2026
…uwer

Rollup of 14 pull requests

Successful merges:

 - #160302 (target_features: sse (or at least avx2) is incompatible with soft-float ABI)
 - #161187 (add `Complex<T>` layout tests for straightforward targets)
 - #161524 (Put back `tests/rustdoc-gui/search-result-display.goml`)
 - #161586 (miri subtree update)
 - #155254 (Recover on attribute in use tree)
 - #158695 (Replace `CrateDump` with the Debug impl from `CStore`)
 - #160452 (-Ctarget-feature is not unsafe (any more))
 - #161007 (tests/ui/union/union-nodrop.rs: fix typo "expressios")
 - #161166 (add crashtests [5/N], remove unused aux files )
 - #161569 (Bump cfg_aliases to 0.2.2)
 - #161573 (re-bless `pretty-std` on windows)
 - #161588 (update eyre)
 - #161589 (std: reduce visibility of some internal OsStr related types)
 - #161598 ([Bootstrap] Pass exact CI `llvm-config` executable path)
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
.                                                  (151/151)

======== tests/rustdoc-gui/rust-logo.goml ========

[ERROR] line 40
    at `tests/rustdoc-gui/rust-logo.goml` line 15: TimeoutError: Navigation timeout of 30000 ms exceeded: for command `go-to: "file://" + |DOC_PATH| + "/huge_logo/index.html"`
    at <file:///checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/doc/staged_api/index.html>

======== tests/rustdoc-gui/search-result-display.goml ========

[WARNING] line 38: Delta is 0 for "x", maybe try to use `compare-elements-position` instead?

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 23, 2026
@rust-bors

rust-bors Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 817f2d6 failed: CI. Failed job:

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors retry

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 23, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 23, 2026
…uwer

Rollup of 14 pull requests

Successful merges:

 - #160302 (target_features: sse (or at least avx2) is incompatible with soft-float ABI)
 - #161187 (add `Complex<T>` layout tests for straightforward targets)
 - #161524 (Put back `tests/rustdoc-gui/search-result-display.goml`)
 - #161586 (miri subtree update)
 - #155254 (Recover on attribute in use tree)
 - #158695 (Replace `CrateDump` with the Debug impl from `CStore`)
 - #160452 (-Ctarget-feature is not unsafe (any more))
 - #161007 (tests/ui/union/union-nodrop.rs: fix typo "expressios")
 - #161166 (add crashtests [5/N], remove unused aux files )
 - #161569 (Bump cfg_aliases to 0.2.2)
 - #161573 (re-bless `pretty-std` on windows)
 - #161588 (update eyre)
 - #161589 (std: reduce visibility of some internal OsStr related types)
 - #161598 ([Bootstrap] Pass exact CI `llvm-config` executable path)
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-gnu-aux failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
test collections::hash::map::tests::test_eq ... ok
test collections::hash::map::tests::test_extend_ref ... ok
test collections::hash::map::tests::test_extract_if::consuming_all ... ok
test collections::hash::map::tests::test_extract_if::consuming_nothing ... ok
error: Undefined Behavior: calling a function with return type unwind::types::_Unwind_Reason_Code passing return place of type unwind::_Unwind_Reason_Code
##[error]   --> library/panic_unwind/src/gcc.rs:73:20
    |
    = note: Undefined Behavior occurred here
    |
    = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
    = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information
    = help: this means these two types are not *guaranteed* to be ABI-compatible across all targets
    = help: if you think this code should be accepted anyway, please report an issue with Miri
    = note: this is on thread `collections::ha`
    = note: stack backtrace:
            0: panic_unwind::imp::panic
                at library/panic_unwind/src/gcc.rs:73:21: 73:64
            1: panic_unwind::__rust_start_panic
                at library/panic_unwind/src/lib.rs:91:5: 91:24
            2: realstd::panicking::rust_panic
                at /checkout/library/std/src/panicking.rs:884:16: 884:39
            3: realstd::panicking::panic_with_hook
                at /checkout/library/std/src/panicking.rs:837:5: 837:24
            4: realstd::panicking::panic_handler::{closure#0}
                at /checkout/library/std/src/panicking.rs:679:13: 684:14
            5: realstd::sys::backtrace::__rust_end_short_backtrace::<{closure@realstd::panicking::panic_handler::{closure#0}}, !>
                at /checkout/library/std/src/sys/backtrace.rs:182:18: 182:21
            6: realstd::panicking::panic_handler
                at /checkout/library/std/src/panicking.rs:677:5: 693:7
            7: <collections::hash::map::tests::test_extract_if::drop_panic_leak::D as core::ops::Drop>::drop
                at /checkout/library/core/src/panic.rs:61:9: 61:73
            8: core::ptr::drop_glue::<collections::hash::map::tests::test_extract_if::drop_panic_leak::D> - shim(Some(collections::hash::map::tests::test_extract_if::drop_panic_leak::D))
                at /checkout/library/core/src/ptr/mod.rs:848:1: 850:25
            9: core::ptr::drop_glue::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)> - shim(Some((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)))
                at /checkout/library/core/src/ptr/mod.rs:848:1: 850:25
            10: core::mem::drop::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)>
                at /checkout/library/core/src/mem/mod.rs:1049:1: 1049:2
            11: <fn((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)) {core::mem::drop::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)>} as core::ops::FnMut<((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D),)>>::call_mut - shim(fn((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)) {core::mem::drop::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)>})
                at /checkout/library/core/src/ops/function.rs:166:5: 166:75
            12: core::iter::Iterator::for_each::call::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D), fn((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)) {core::mem::drop::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)>}>::{closure#0}
                at /checkout/library/core/src/iter/traits/iterator.rs:884:29: 884:36
            13: <collections::hash::map::ExtractIf<'_, i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D, {closure@library/std/src/collections/hash/map/tests.rs:945:28: 945:34}> as core::iter::Iterator>::fold::<(), {closure@core::iter::Iterator::for_each::call<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D), fn((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)) {core::mem::drop::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)>}>::{closure#0}}>
                at /checkout/library/core/src/iter/traits/iterator.rs:2667:21: 2667:32
            14: <collections::hash::map::ExtractIf<'_, i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D, {closure@library/std/src/collections/hash/map/tests.rs:945:28: 945:34}> as core::iter::Iterator>::for_each::<fn((i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)) {core::mem::drop::<(i32, collections::hash::map::tests::test_extract_if::drop_panic_leak::D)>}>
                at /checkout/library/core/src/iter/traits/iterator.rs:887:9: 887:31
            15: collections::hash::map::tests::test_extract_if::drop_panic_leak::{closure#1}
                at library/std/src/collections/hash/map/tests.rs:945:13: 949:28
            16: panicking::catch_unwind::do_call::<{closure@library/std/src/collections/hash/map/tests.rs:944:22: 944:29}, ()>
                at library/std/src/panicking.rs:574:43: 574:46
            17: panicking::catch_unwind::<(), {closure@library/std/src/collections/hash/map/tests.rs:944:22: 944:29}>
                at library/std/src/panicking.rs:542:19: 542:77
            18: panic::catch_unwind::<{closure@library/std/src/collections/hash/map/tests.rs:944:22: 944:29}, ()>
                at library/std/src/panic.rs:359:14: 359:40
            19: collections::hash::map::tests::test_extract_if::drop_panic_leak
                at library/std/src/collections/hash/map/tests.rs:944:9: 950:11
            20: collections::hash::map::tests::test_extract_if::drop_panic_leak::{closure#0}
                at library/std/src/collections/hash/map/tests.rs:929:25: 929:25
            21: <{closure@library/std/src/collections/hash/map/tests.rs:929:5: 955:6} as core::ops::FnOnce<()>>::call_once - shim
                at /checkout/library/core/src/ops/function.rs:250:5: 250:71
            22: <fn() -> core::result::Result<(), realstd::string::String> as core::ops::FnOnce<()>>::call_once - shim(fn() -> core::result::Result<(), realstd::string::String>)
                at /checkout/library/core/src/ops/function.rs:250:5: 250:71
note: the last function in that backtrace got called indirectly due to this code
   --> /checkout/library/test/src/lib.rs:707:23
    |
707 |                 match cfg.spawn(move || runtest2.lock().unwrap().take().unwrap()()) {
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace

error: aborting due to 1 previous error

error: test failed, to rerun pass `-p std --lib`

Caused by:
  process didn't exit successfully: `/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/cargo-miri runner /checkout/obj/build/x86_64-unknown-linux-gnu/stage2-std/x86_64-unknown-linux-gnu/debug/build/std/21d9de7305d3eef0/out/std-21d9de7305d3eef0 --skip 'fs::' --skip 'net::' --skip 'process::' --skip 'sys::' -Z unstable-options --format json` (exit status: 1)
note: test exited abnormally; to see the full output pass --no-capture to the harness.
Bootstrap failed while executing `miri --stage 2 library/std -- --skip fs:: --skip net:: --skip process:: --skip sys::`
Currently active steps:
test::Crate { build_compiler: Compiler { stage: 2, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu, mode: Std, crates: ["std"] } at src/bootstrap/src/core/build_steps/test.rs:3521
Build completed unsuccessfully in 0:00:25
make: *** [Makefile:61: check-aux] Error 1
  local time: Sun Aug 23 18:25:17 UTC 2026
  network time: Sun, 23 Aug 2026 18:25:17 GMT
##[error]Process completed with exit code 2.
##[group]Run echo "disk usage:"
echo "disk usage:"

@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 23, 2026
@rust-bors

rust-bors Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 9cd8e6e failed: CI. Failed job:

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 23, 2026
@rust-bors

rust-bors Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

PR #161586, which is a member of this rollup, was unapproved.

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.