Uh oh!
There was an error while loading. Please reload this page.
tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test - #159328
Conversation
rustbot
commented
Jul 15, 2026
r? @jieyouxu rustbot has assigned @jieyouxu. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
jieyouxu
commented
Jul 15, 2026
@rustbot reroll |
rustbot
commented
Jul 15, 2026
Reminder, once the PR becomes ready for a review, use |
mati865
commented
Jul 15, 2026
@rustbot author |
Also please note that AI-generated PR descriptions are frowned upon in this project (and generally I think it is good etiquette to get explicit consent from people before confronting them with AI-generated text, or to hide all such text behind a "further LLVM-generated details you can freely skip"). The point of a PR description is for you to describe your motivation and understanding of this change. During the PR review process we expect to interact with a human who has a genuine interest in understanding how to fix this issue properly, and as part of that we expect the PR description to be written by said human. |
dianqk
commented
Jul 15, 2026
I'm surprised that this is the root cause. LLVM should produce the same result regardless of the optimization level used to build it. Could you explaina bit more? |
DeepeshWR
commented
Jul 16, 2026
Thank you all for the feedback. I apologize for the AI-generated description, that was a mistake on my part. Let me provide the proper explanation based on my investigation. Root cause: The failure occurs in OE-core (OpenEmbedded/Yocto) builds where Rust is compiled against an external system LLVM and tests are run against a custom target The built-in
I confirmed this by changing I think both the values are correct. Please let me know what I need to do now. Whether I can update the commit message with the same fix what we have in this PR or shall I update the testcase with Let me know which approach you'd prefer and I'll update the PR accordingly. |
nikic
commented
Jul 16, 2026
I'd prefer the variant using |
The `scoped_two_small_structs` test expects `sub sp, sp, rust-lang#48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, rust-lang#32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy. Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
0cb43cc to
9e0664aComparerustbot
commented
Jul 16, 2026
|
DeepeshWR
commented
Jul 16, 2026
@rustbot ready |
…arch64-stack-check, r=mati865 tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test The `scoped_two_small_structs` test expects `sub sp, sp, rust-lang#48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, rust-lang#32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy.
…uwer Rollup of 5 pull requests Successful merges: - #159189 (Account for type alias projections in E0308 "expected/found" shortening logic) - #158545 (Move `std::io::read_to_string` to `alloc::io`) - #159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - #159470 (Fix string indexing in diagnostic format strings) - #159500 (Move compiletest CLI parsing to `cli.rs`)
…arch64-stack-check, r=mati865 tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test The `scoped_two_small_structs` test expects `sub sp, sp, rust-lang#48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, rust-lang#32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy.
…uwer Rollup of 5 pull requests Successful merges: - #159467 (Add explicit `Iterator::count` impl for `str::EncodeUtf16`) - #158545 (Move `std::io::read_to_string` to `alloc::io`) - #159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - #159470 (Fix string indexing in diagnostic format strings) - #159500 (Move compiletest CLI parsing to `cli.rs`)
…uwer Rollup of 8 pull requests Successful merges: - #159425 (Windows: add context when opening NUL for child stdio fails) - #159467 (Add explicit `Iterator::count` impl for `str::EncodeUtf16`) - #157860 (Move rustdoc run-make tests into new `tests/run-make/rustdoc/`) - #158545 (Move `std::io::read_to_string` to `alloc::io`) - #159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - #159459 (Detect when trait bound requires closure to return itself) - #159470 (Fix string indexing in diagnostic format strings) - #159500 (Move compiletest CLI parsing to `cli.rs`)
Uh oh!
There was an error while loading. Please reload this page.
Rollup merge of #159328 - DeepeshWR:fix/issue-141649-relax-aarch64-stack-check, r=mati865 tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test The `scoped_two_small_structs` test expects `sub sp, sp, #48` on aarch64, which assumes the frame pointer (x29) is saved. Custom targets that don't set `frame-pointer: non-leaf` (e.g., OpenEmbedded/Yocto's `aarch64-poky-linux-gnu`) omit x29, producing `sub sp, sp, #32` instead. Add `-Cforce-frame-pointers=yes` to the aarch64 revision so the test produces consistent codegen regardless of the target's default frame pointer policy.
…uwer Rollup of 8 pull requests Successful merges: - rust-lang/rust#159425 (Windows: add context when opening NUL for child stdio fails) - rust-lang/rust#159467 (Add explicit `Iterator::count` impl for `str::EncodeUtf16`) - rust-lang/rust#157860 (Move rustdoc run-make tests into new `tests/run-make/rustdoc/`) - rust-lang/rust#158545 (Move `std::io::read_to_string` to `alloc::io`) - rust-lang/rust#159328 (tests/assembly-llvm: pin frame pointer in issue-141649 aarch64 test) - rust-lang/rust#159459 (Detect when trait bound requires closure to return itself) - rust-lang/rust#159470 (Fix string indexing in diagnostic format strings) - rust-lang/rust#159500 (Move compiletest CLI parsing to `cli.rs`)
The
scoped_two_small_structstest expectssub sp, sp, #48onaarch64, which assumes the frame pointer (x29) is saved. Custom targets
that don't set
frame-pointer: non-leaf(e.g., OpenEmbedded/Yocto'saarch64-poky-linux-gnu) omit x29, producingsub sp, sp, #32instead.Add
-Cforce-frame-pointers=yesto the aarch64 revision so the testproduces consistent codegen regardless of the target's default frame
pointer policy.