Skip to content

Comments

[win][aarch64] Place catch objects in fixed stack locations#183

Merged
nikic merged 1 commit intorust-lang:rustc/20.1-2025-02-13from
dpaoliello:arm64catchobj
Jul 9, 2025
Merged

[win][aarch64] Place catch objects in fixed stack locations#183
nikic merged 1 commit intorust-lang:rustc/20.1-2025-02-13from
dpaoliello:arm64catchobj

Conversation

@dpaoliello
Copy link

This is a cherry-pick of llvm#147421

This fixes the rustc_thread_pool failure that is currently blocking enabling an Arm64 Windows CI runner for Rust: rust-lang/rust#142895 (comment)

From the original PR:

When an object with alignment requirements is placed on the stack, this causes a stack realignment which causes AArch64 to use x19 to refer to objects on the stack as there may be a gap between local variables and the Stack Pointer. This causes issues with the MSVC C++ exception personality as the offset to the catch object recorded in the handler table no longer matches the object being used in the catch block itself.

The fix for this is to place catch objects into the fixed object area.

@nikic nikic merged commit 99f0e05 into rust-lang:rustc/20.1-2025-02-13 Jul 9, 2025
@dpaoliello dpaoliello deleted the arm64catchobj branch July 9, 2025 19:50
bors added a commit to rust-lang/rust that referenced this pull request Jul 10, 2025
github-actions bot pushed a commit to rust-lang/compiler-builtins that referenced this pull request Jul 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants