Skip to content

Rollup of 9 pull requests#156254

Closed
JonathanBrouwer wants to merge 27 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-u4Djp8E
Closed

Rollup of 9 pull requests#156254
JonathanBrouwer wants to merge 27 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-u4Djp8E

Conversation

@JonathanBrouwer
Copy link
Copy Markdown
Contributor

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

nnethercote and others added 27 commits May 4, 2026 14:29
- Improve a comment.
- Remove unused `[decode]` annotations on some arenas.
- Improve `impl_arena_allocatable_decoder`:
  - Make the first rule more like the second rule.
  - Remove unnecessary brackets.
  - Remove unused support for attributes other than `decode`.
The table names usually match the name of the corresponding query.
The `trait_impl_trait_tys` table is an exception; this commit renames it
`collect_return_position_impl_trait_in_trait_tys` to match the query.
- Remove comment about blanket implementation of `FallibleTypeFolder` --
  it does not exist. (It probably used to.)
- Fix some incorrect name references.
- Fix minor grammatical errors.
- Fix stale comment on `visit_region` -- it was a no-op once, but no
  longer.

LLM disclosure: Claude Code identified these problems with comments when
I asked it to review `fold.rs` and `visit.rs`. I verified the
correctness of the problems and made the changes by hand.
After llvm/llvm-project#195486 , LLVM has explicit handling for null
pointers in simd operations instead of using special handling based on
zeroes.

This causes LLVM with asserts enabled to detect an improperly typed mask
passed to splat (if the output vector does not have i32 elements), and
can cause SIGSEGV in more complex cases with asserts disabled.
Another user-transparent change, unifying outer-type information and the
existing VisitorState flags.
In order to follow along with the efforts to properly distinguish
already-normalised and unnormalized types, we separate the internal
interfaces of this lint that rely on normalized types from those that
do not. We do that by adding the `Unnormalized` wrapper to some
interfaces.
- Introduce `HAS_REGIONS`/`has_regions`, which is true if any regions
  are present.
- Add `fold_clauses` to `Shifter` and `RegionFolder` for consistency.
- Simplify `has_type_flags`.
- Remove unnecessary local variables in `HasTypeFlagsVisitor` methods.
- Use `|=` operator in one place.
- Avoid `is_break` in one place for consistency with nearby code.

LLM disclosure: Claude Code suggested these changes when I asked it to
review `fold.rs` and `visit.rs`. I verified the correctness of the
suggestions and made the changes by hand.
Like we do for other things for better experience in rust-analyzer.

It's possible now that the `AliasTyKind` and `AliasTermKind` contains the DefId.

It does require a few `try_into().unwrap()`s since in the solver's `consider_X_candidate()` only get an untyped `DefId`. It's possible to reduce that considerably if we'd pass them the typed def id as a parameter, but I don't know what will be the impact on perf.
This commit is some minor updates/restructuring in a few locations with
the end result being supporting `-Cpanic=unwind` on WASI targets. This
continues to be off-by-default insofar as WASI targets default to
`-Cpanic=abort`, meaning that actually using anything in this commit
requires `-Zbuild-std`. Specifically the changes made here are:

* The self-contained sysroot for WASI targets now contains a copy of
  `libunwind.a` from wasi-sdk, first shipped with wasi-sdk-33 (also
  updated here).
* The `unwind` crate here in this repository uses the `libunwind` module
  instead of the custom bare-metal wasm implementation of exceptions.
  This means that Rust uses the `_Unwind_*` symbols which allows it to
  interoperate with C/C++/etc.
* Wasm targets are all updated to pass the LLVM argument
  `-wasm-use-legacy-eh=false` to differ from LLVM's/clang's default of
  using the legacy exception handling proposal for WebAssembly. This has
  no effect by default because `panic=abort` is used on most targets.
  Emscripten is exempted from this as the Emscripten target is
  explicitly intended to follow LLVM's/clang's defaults.
* There's a single test in the test suite that links to the
  `panic_unwind` crate which ended up requiring `-Wexceptions` from
  Wasmtime, so the test parts were updated and Wasmtime was updated in
  CI, too.

The net result of all of this is that this should not actually affect
any WebAssembly target's default behavior. Optionally, though, WASI
programs can be built with exception handling via:

    RUSTFLAGS='-Cpanic=unwind' cargo +nightly run -Z build-std --target wasm32-wasip2

Effectively `-Zbuild-std` and `-Cpanic=unwind` is all that's necessary
to enable this support on wasm targets.

Finally, this ends up closing 154593 as well. The WASI targets are now
defined to use `-lunwind` to implement unwinding. This means that the
in-tree definition of `__cpp_exception` is no longer of concern and the
definition is always sourced externally. If Rust is linked with other
C/C++ code using WASI then these idioms are compatible with wasi-sdk,
for example, to use that as a linker. The main caveat is that when using
an external linker the `-fwasm-exceptions` argument needs to be passed
to `clang` for it to be able to find the `libunwind.a` library to link
against.

Closes 154593
…bjorn3

Support `-Cpanic=unwind` on WASI targets

This commit is some minor updates/restructuring in a few locations with the end result being supporting `-Cpanic=unwind` on WASI targets. This continues to be off-by-default insofar as WASI targets default to `-Cpanic=abort`, meaning that actually using anything in this commit requires `-Zbuild-std`. Specifically the changes made here are:

* The self-contained sysroot for WASI targets now contains a copy of `libunwind.a` from wasi-sdk, first shipped with wasi-sdk-33 (also updated here).
* The `unwind` crate here in this repository uses the `libunwind` module instead of the custom bare-metal wasm implementation of exceptions. This means that Rust uses the `_Unwind_*` symbols which allows it to interoperate with C/C++/etc.
* Wasm targets are all updated to pass the LLVM argument `-wasm-use-legacy-eh=false` to differ from LLVM's/clang's default of using the legacy exception handling proposal for WebAssembly. This has no effect by default because `panic=abort` is used on most targets. Emscripten is exempted from this as the Emscripten target is explicitly intended to follow LLVM's/clang's defaults.
* There's a single test in the test suite that links to the `panic_unwind` crate which ended up requiring `-Wexceptions` from Wasmtime, so the test parts were updated and Wasmtime was updated in CI, too.

The net result of all of this is that this should not actually affect any WebAssembly target's default behavior. Optionally, though, WASI programs can be built with exception handling via:

    RUSTFLAGS='-Cpanic=unwind' cargo +nightly run -Z build-std --target wasm32-wasip2

Effectively `-Zbuild-std` and `-Cpanic=unwind` is all that's necessary to enable this support on wasm targets.

Finally, this ends up closing rust-lang#154593 as well. The WASI targets are now defined to use `-lunwind` to implement unwinding. This means that the in-tree definition of `__cpp_exception` is no longer of concern and the definition is always sourced externally. If Rust is linked with other C/C++ code using WASI then these idioms are compatible with wasi-sdk, for example, to use that as a linker. The main caveat is that when using an external linker the `-fwasm-exceptions` argument needs to be passed to `clang` for it to be able to find the `libunwind.a` library to link against.

Closes rust-lang#154593
…, r=petrochenkov

lint ImproperCTypes: refactor linting architecture (part 2)

This is the second PR in an effort to split rust-lang#134697 (refactor plus overhaul of the ImproperCTypes family of lints) into individually-mergeable parts.

Contains the changes of the first PR, and splits the core type checking function into several bits, each focused on a specific aspect of FFI-safety.
Some logic which was outside of said core function was also moved into the new functions.

Superset of: rust-lang#146271
…rate, r=jdonszelmann

Lint unused pub items in binary crates

~~This PR adds a new unstable flag -Ztreat-pub-as-pub-crate as [@Kobzol](https://github.com/Kobzol) suggested.~~
~~When compiling binary crates with this flag, the seed worklist will only contain the entry fn and won't contain other reachable items. Then we can do the dead code analysis for pub items just like they are pub(crate).~~

Related zulip thread [#general > pub/pub(crate) within a binary is a footgun](https://rust-lang.zulipchat.com/#narrow/channel/122651-general/topic/pub.2Fpub.28crate.29.20within.20a.20binary.20is.20a.20footgun/with/558931034).

---

Updated:

Adds a new lint `unused_pub_items_in_binary` (crate-level, default allow for now) instead of the previous unstable flag to lint unused `pub` items for binary crates.

See more details of implementation in rust-lang#149509 (comment).

This lint is allowed by default, but I believe this has been better than the unstable flag. Making it warn-by-default will lead to a lot of noise for this PR (like bless many tests). So I'd like to make it warn-by-default in a separate PR in the future.
…trochenkov

Fewer global node_id_to_def_id lookups

Several of these are unnecessary if we track the `LocalDefId` together with the `NodeId`. We can't remove the `NodeId` entirely, as it is needed for lints, but it's a useful refactoring for splitting node_id_to_def_id into a per-owner table in the future

r? @petrochenkov
… r=mejrs

Deny warnings in the test for crates that are available on stable

We've got a couple of crates, like `rustc_type_ir` that have parts disabled on stable. I believe part of this is so, for example, rust-analyzer can use bits of the compiler. We previously allowed warnings here, and I ran into one. This denies warnings in the test that compiles these stable crates (I chose not to on the crate itself, so you don't *constantly* run into the warnings if you have turned that off in `config.toml`). This test doesn't run by default, but it does run in CI.
Use special DefIds for aliases

Renewal of rust-lang#155025, after `AliasTermKind` was also ported.

Like we do for other things for better experience in rust-analyzer.

It's possible now that the `AliasTyKind` and `AliasTermKind` contains the DefId.

It does require a few `try_into().unwrap()`s since in the solver's `consider_X_candidate()` only get an untyped `DefId`. It's possible to reduce that considerably if we'd pass them the typed def id as a parameter, but I don't know what will be the impact on perf. Should I try to pursue that?

r? lcnr
…affleLapkin

Fold/visit tweaks

Details in individual commits.

r? @WaffleLapkin
… r=Zalathar

Metadata macro/query cleanups

Details in individual commits.

r? @Zalathar
llvm: Use correct type for splat mask

After llvm/llvm-project#195486 , LLVM has explicit handling for null pointers in simd operations instead of using special handling based on zeroes.

This causes LLVM with asserts enabled to detect an improperly typed mask passed to splat (if the output vector does not have i32 elements), and can cause SIGSEGV in more complex cases with asserts disabled.

@rustbot label: +llvm-main

r? @durin42
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label May 6, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI labels May 6, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels May 6, 2026
@JonathanBrouwer
Copy link
Copy Markdown
Contributor Author

@bors r+ rollup=never p=5

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 6, 2026

📌 Commit b4c4bbe 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 May 6, 2026
@rust-bors

This comment has been minimized.

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

Rollup of 9 pull requests

Successful merges:

 - #156061 (Support `-Cpanic=unwind` on WASI targets)
 - #146273 (lint ImproperCTypes: refactor linting architecture (part 2))
 - #149509 (Lint unused pub items in binary crates)
 - #156173 (Fewer global node_id_to_def_id lookups)
 - #155961 (Deny warnings in the test for crates that are available on stable)
 - #155981 (Use special DefIds for aliases)
 - #156130 (Fold/visit tweaks)
 - #156131 (Metadata macro/query cleanups)
 - #156202 (llvm: Use correct type for splat mask)

Failed merges:

 - #156236 (resolve: Remove `MacroData`)
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job test-various failed! Check out the build log: (web) (plain enhanced) (plain)

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

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly-llvm/wasm_exceptions/wasm_exceptions.s
Check file: /checkout/tests/assembly-llvm/wasm_exceptions.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1:  .file "wasm_exceptions.c220d53a0cdd662d-cgu.0" 
            2:  .globaltype __stack_pointer, i32 
            3:  .tagtype __cpp_exception i32 
            4:  .functype _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop (i32) -> () 
            5:  .functype test_cleanup () -> () 
            6:  .functype test_rtry () -> () 
            7:  .functype __gxx_wasm_personality_v0 (i32) -> (i32) 
            8:  .functype log_number (i32) -> () 
            9:  .functype may_panic () -> () 
           10:  .functype _Unwind_CallPersonality (i32) -> (i32) 
           11:  .section .text._RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop,"",@ 
           12:  .globl _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop 
           13:  .type _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop,@function 
           14: _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop: 
           15:  .functype _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop (i32) -> () 
           16:  i32.const 0 
           17:  call log_number 
           18:  end_function 
           19:  
           20:  .section .text.test_cleanup,"",@ 
           21:  .globl test_cleanup 
           22:  .type test_cleanup,@function 
           23: test_cleanup: 
           24: .Lfunc_begin0: 
           25:  .functype test_cleanup () -> () 
           26:  .local i32, exnref 
           27:  global.get __stack_pointer 
           28:  local.set 0 
           29:  block  
           30:  block exnref 
           31:  try_table (catch_all_ref 0) 
           32: .Ltmp0: 
           33:  call may_panic 
check:38'0                    X error: no match found
           34: .Ltmp1: 
check:38'0     ~~~~~~~~
           35:  br 2 
check:38'0     ~~~~~~
           36:  end_try_table 
check:38'0     ~~~~~~~~~~~~~~~
           37:  unreachable 
check:38'0     ~~~~~~~~~~~~~
check:38'1         ?         possible intended match
           38: .LBB1_2: 
check:38'0     ~~~~~~~~~
           39:  end_block 
check:38'0     ~~~~~~~~~~~
           40: .Ltmp2: 
check:38'0     ~~~~~~~~
           41:  local.set 1 
check:38'0     ~~~~~~~~~~~~~
           42:  local.get 0 
check:38'0     ~~~~~~~~~~~~~
           43:  global.set __stack_pointer 
check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           44:  i32.const 0 
check:38'0     ~~~~~~~~~~~~~
           45:  call log_number 
check:38'0     ~~~~~~~~~~~~~~~~~
           46:  local.get 1 
check:38'0     ~~~~~~~~~~~~~
           47:  throw_ref 
check:38'0     ~~~~~~~~~~~
           48: .LBB1_3: 
check:38'0     ~~~~~~~~~
           49:  end_block 
---
check:38'0     ~~~~~~~~~~~~~~
           53: .Lfunc_end0: 
check:38'0     ~~~~~~~~~~~~~
           54:  
check:38'0     ~
           55:  .section .text.test_rtry,"",@ 
check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           56:  .globl test_rtry 
check:38'0     ~~~~~~~~~~~~~~~~~~
           57:  .type test_rtry,@function 
check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           58: test_rtry: 
check:38'0     ~~~~~~~~~~
           59: .Lfunc_begin1: 
           60:  .functype test_rtry () -> () 
           61:  .local i32, i32 
           62:  global.get __stack_pointer 
           63:  local.set 0 
           64:  block  
           65:  block i32 
           66:  try_table (catch __cpp_exception 0) 
           67: .Ltmp3: 
           68:  call may_panic 
check:62'0                    X error: no match found
           69: .Ltmp4: 
check:62'0     ~~~~~~~~
           70:  br 2 
check:62'0     ~~~~~~
           71:  end_try_table 
check:62'0     ~~~~~~~~~~~~~~~
           72:  unreachable 
check:62'0     ~~~~~~~~~~~~~
check:62'1        ?          possible intended match
           73: .LBB2_2: 
check:62'0     ~~~~~~~~~
           74:  end_block 
check:62'0     ~~~~~~~~~~~
           75: .Ltmp5: 
check:62'0     ~~~~~~~~
           76:  local.set 1 
check:62'0     ~~~~~~~~~~~~~
           77:  local.get 0 
check:62'0     ~~~~~~~~~~~~~
           78:  global.set __stack_pointer 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           79:  i32.const 0 
check:62'0     ~~~~~~~~~~~~~
           80:  call log_number 
check:62'0     ~~~~~~~~~~~~~~~~~
           81:  local.get 1 
check:62'0     ~~~~~~~~~~~~~
           82:  call log_number 
check:62'0     ~~~~~~~~~~~~~~~~~
           83: .LBB2_3: 
check:62'0     ~~~~~~~~~
           84:  end_block 
check:62'0     ~~~~~~~~~~~
           85:  end_function 
check:62'0     ~~~~~~~~~~~~~~
           86: .Lfunc_end1: 
check:62'0     ~~~~~~~~~~~~~
           87:  
check:62'0     ~
           88:  .ident "rustc version 1.97.0-nightly (f2b044e0c 2026-05-06)" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           89:  .no_dead_strip __indirect_function_table 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           90:  .size __wasm_lpad_context, 12 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           91:  .section .custom_section.producers,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           92:  .int8 1 
check:62'0     ~~~~~~~~~
           93:  .int8 12 
check:62'0     ~~~~~~~~~~
           94:  .ascii "processed-by" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~
           95:  .int8 1 
check:62'0     ~~~~~~~~~
           96:  .int8 5 
check:62'0     ~~~~~~~~~
           97:  .ascii "rustc" 
check:62'0     ~~~~~~~~~~~~~~~~
           98:  .int8 37 
check:62'0     ~~~~~~~~~~
           99:  .ascii "1.97.0-nightly (f2b044e0c 2026-05-06)" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          100:  .section .text.test_rtry,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          101:  .section .custom_section.target_features,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          102:  .int8 10 
check:62'0     ~~~~~~~~~~
          103:  .int8 43 
check:62'0     ~~~~~~~~~~
          104:  .int8 11 
check:62'0     ~~~~~~~~~~
          105:  .ascii "bulk-memory" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~
          106:  .int8 43 
check:62'0     ~~~~~~~~~~
          107:  .int8 15 
check:62'0     ~~~~~~~~~~
          108:  .ascii "bulk-memory-opt" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          109:  .int8 43 
check:62'0     ~~~~~~~~~~
          110:  .int8 22 
check:62'0     ~~~~~~~~~~
          111:  .ascii "call-indirect-overlong" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          112:  .int8 43 
check:62'0     ~~~~~~~~~~
          113:  .int8 18 
check:62'0     ~~~~~~~~~~
          114:  .ascii "exception-handling" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          115:  .int8 43 
check:62'0     ~~~~~~~~~~
          116:  .int8 10 
check:62'0     ~~~~~~~~~~
          117:  .ascii "multivalue" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~
          118:  .int8 43 
check:62'0     ~~~~~~~~~~
          119:  .int8 15 
check:62'0     ~~~~~~~~~~
          120:  .ascii "mutable-globals" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          121:  .int8 43 
check:62'0     ~~~~~~~~~~
          122:  .int8 19 
check:62'0     ~~~~~~~~~~
          123:  .ascii "nontrapping-fptoint" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          124:  .int8 43 
check:62'0     ~~~~~~~~~~
          125:  .int8 15 
check:62'0     ~~~~~~~~~~
          126:  .ascii "reference-types" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          127:  .int8 43 
check:62'0     ~~~~~~~~~~
          128:  .int8 8 
check:62'0     ~~~~~~~~~
          129:  .ascii "sign-ext" 
check:62'0     ~~~~~~~~~~~~~~~~~~~
          130:  .int8 45 
check:62'0     ~~~~~~~~~~
          131:  .int8 10 
check:62'0     ~~~~~~~~~~
          132:  .ascii "shared-mem" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~
          133:  .section .text.test_rtry,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>

------------------------------------------

error: verification with 'FileCheck' failed
status: exit status: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" "--input-file" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly-llvm/wasm_exceptions/wasm_exceptions.s" "/checkout/tests/assembly-llvm/wasm_exceptions.rs" "--check-prefix=CHECK" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/checkout/tests/assembly-llvm/wasm_exceptions.rs:38:12: error: CHECK: expected string not found in input
 // CHECK: catch_all
           ^
---

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/assembly-llvm/wasm_exceptions/wasm_exceptions.s
Check file: /checkout/tests/assembly-llvm/wasm_exceptions.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
            1:  .file "wasm_exceptions.c220d53a0cdd662d-cgu.0" 
            2:  .globaltype __stack_pointer, i32 
            3:  .tagtype __cpp_exception i32 
            4:  .functype _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop (i32) -> () 
            5:  .functype test_cleanup () -> () 
            6:  .functype test_rtry () -> () 
            7:  .functype __gxx_wasm_personality_v0 (i32) -> (i32) 
            8:  .functype log_number (i32) -> () 
            9:  .functype may_panic () -> () 
           10:  .functype _Unwind_CallPersonality (i32) -> (i32) 
           11:  .section .text._RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop,"",@ 
           12:  .globl _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop 
           13:  .type _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop,@function 
           14: _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop: 
           15:  .functype _RNvXCsgFl5uybZNR9_15wasm_exceptionsNtB2_9LogOnDropNtNtNtCs7vGai4HWpxt_4core3ops4drop4Drop4drop (i32) -> () 
           16:  i32.const 0 
           17:  call log_number 
           18:  end_function 
           19:  
           20:  .section .text.test_cleanup,"",@ 
           21:  .globl test_cleanup 
           22:  .type test_cleanup,@function 
           23: test_cleanup: 
           24: .Lfunc_begin0: 
           25:  .functype test_cleanup () -> () 
           26:  .local i32, exnref 
           27:  global.get __stack_pointer 
           28:  local.set 0 
           29:  block  
           30:  block exnref 
           31:  try_table (catch_all_ref 0) 
           32: .Ltmp0: 
           33:  call may_panic 
check:38'0                    X error: no match found
           34: .Ltmp1: 
check:38'0     ~~~~~~~~
           35:  br 2 
check:38'0     ~~~~~~
           36:  end_try_table 
check:38'0     ~~~~~~~~~~~~~~~
           37:  unreachable 
check:38'0     ~~~~~~~~~~~~~
check:38'1         ?         possible intended match
           38: .LBB1_2: 
check:38'0     ~~~~~~~~~
           39:  end_block 
check:38'0     ~~~~~~~~~~~
           40: .Ltmp2: 
check:38'0     ~~~~~~~~
           41:  local.set 1 
check:38'0     ~~~~~~~~~~~~~
           42:  local.get 0 
check:38'0     ~~~~~~~~~~~~~
           43:  global.set __stack_pointer 
check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           44:  i32.const 0 
check:38'0     ~~~~~~~~~~~~~
           45:  call log_number 
check:38'0     ~~~~~~~~~~~~~~~~~
           46:  local.get 1 
check:38'0     ~~~~~~~~~~~~~
           47:  throw_ref 
check:38'0     ~~~~~~~~~~~
           48: .LBB1_3: 
check:38'0     ~~~~~~~~~
           49:  end_block 
---
check:38'0     ~~~~~~~~~~~~~~
           53: .Lfunc_end0: 
check:38'0     ~~~~~~~~~~~~~
           54:  
check:38'0     ~
           55:  .section .text.test_rtry,"",@ 
check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           56:  .globl test_rtry 
check:38'0     ~~~~~~~~~~~~~~~~~~
           57:  .type test_rtry,@function 
check:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
           58: test_rtry: 
check:38'0     ~~~~~~~~~~
           59: .Lfunc_begin1: 
           60:  .functype test_rtry () -> () 
           61:  .local i32, i32 
           62:  global.get __stack_pointer 
           63:  local.set 0 
           64:  block  
           65:  block i32 
           66:  try_table (catch __cpp_exception 0) 
           67: .Ltmp3: 
           68:  call may_panic 
check:62'0                    X error: no match found
           69: .Ltmp4: 
check:62'0     ~~~~~~~~
           70:  br 2 
check:62'0     ~~~~~~
           71:  end_try_table 
check:62'0     ~~~~~~~~~~~~~~~
           72:  unreachable 
check:62'0     ~~~~~~~~~~~~~
check:62'1        ?          possible intended match
           73: .LBB2_2: 
check:62'0     ~~~~~~~~~
           74:  end_block 
check:62'0     ~~~~~~~~~~~
           75: .Ltmp5: 
check:62'0     ~~~~~~~~
           76:  local.set 1 
check:62'0     ~~~~~~~~~~~~~
           77:  local.get 0 
check:62'0     ~~~~~~~~~~~~~
           78:  global.set __stack_pointer 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           79:  i32.const 0 
check:62'0     ~~~~~~~~~~~~~
           80:  call log_number 
check:62'0     ~~~~~~~~~~~~~~~~~
           81:  local.get 1 
check:62'0     ~~~~~~~~~~~~~
           82:  call log_number 
check:62'0     ~~~~~~~~~~~~~~~~~
           83: .LBB2_3: 
check:62'0     ~~~~~~~~~
           84:  end_block 
check:62'0     ~~~~~~~~~~~
           85:  end_function 
check:62'0     ~~~~~~~~~~~~~~
           86: .Lfunc_end1: 
check:62'0     ~~~~~~~~~~~~~
           87:  
check:62'0     ~
           88:  .ident "rustc version 1.97.0-nightly (f2b044e0c 2026-05-06)" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           89:  .no_dead_strip __indirect_function_table 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           90:  .size __wasm_lpad_context, 12 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           91:  .section .custom_section.producers,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           92:  .int8 1 
check:62'0     ~~~~~~~~~
           93:  .int8 12 
check:62'0     ~~~~~~~~~~
           94:  .ascii "processed-by" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~
           95:  .int8 1 
check:62'0     ~~~~~~~~~
           96:  .int8 5 
check:62'0     ~~~~~~~~~
           97:  .ascii "rustc" 
check:62'0     ~~~~~~~~~~~~~~~~
           98:  .int8 37 
check:62'0     ~~~~~~~~~~
           99:  .ascii "1.97.0-nightly (f2b044e0c 2026-05-06)" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          100:  .section .text.test_rtry,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          101:  .section .custom_section.target_features,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          102:  .int8 10 
check:62'0     ~~~~~~~~~~
          103:  .int8 43 
check:62'0     ~~~~~~~~~~
          104:  .int8 11 
check:62'0     ~~~~~~~~~~
          105:  .ascii "bulk-memory" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~
          106:  .int8 43 
check:62'0     ~~~~~~~~~~
          107:  .int8 15 
check:62'0     ~~~~~~~~~~
          108:  .ascii "bulk-memory-opt" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          109:  .int8 43 
check:62'0     ~~~~~~~~~~
          110:  .int8 22 
check:62'0     ~~~~~~~~~~
          111:  .ascii "call-indirect-overlong" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          112:  .int8 43 
check:62'0     ~~~~~~~~~~
          113:  .int8 18 
check:62'0     ~~~~~~~~~~
          114:  .ascii "exception-handling" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          115:  .int8 43 
check:62'0     ~~~~~~~~~~
          116:  .int8 10 
check:62'0     ~~~~~~~~~~
          117:  .ascii "multivalue" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~
          118:  .int8 43 
check:62'0     ~~~~~~~~~~
          119:  .int8 15 
check:62'0     ~~~~~~~~~~
          120:  .ascii "mutable-globals" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          121:  .int8 43 
check:62'0     ~~~~~~~~~~
          122:  .int8 19 
check:62'0     ~~~~~~~~~~
          123:  .ascii "nontrapping-fptoint" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          124:  .int8 43 
check:62'0     ~~~~~~~~~~
          125:  .int8 15 
check:62'0     ~~~~~~~~~~
          126:  .ascii "reference-types" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
          127:  .int8 43 
check:62'0     ~~~~~~~~~~
          128:  .int8 8 
check:62'0     ~~~~~~~~~
          129:  .ascii "sign-ext" 
check:62'0     ~~~~~~~~~~~~~~~~~~~
          130:  .int8 45 
check:62'0     ~~~~~~~~~~
          131:  .int8 10 
check:62'0     ~~~~~~~~~~
          132:  .ascii "shared-mem" 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~
          133:  .section .text.test_rtry,"",@ 
check:62'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
------------------------------------------

---- [assembly] tests/assembly-llvm/wasm_exceptions.rs stdout end ----

@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 May 6, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 6, 2026

💔 Test for f2b044e failed: CI. Failed job:

@jhpratt jhpratt closed this May 7, 2026
@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label May 7, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 7, 2026

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

@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 7, 2026
@maurer
Copy link
Copy Markdown
Contributor

maurer commented May 7, 2026

@rustbot ready
(to flag that I don't understand why it's believed to be related to the failure)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 7, 2026
@jhpratt
Copy link
Copy Markdown
Member

jhpratt commented May 7, 2026

I've created a larger rollup after excluding the correct PR :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.