-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ICE in non-operand aggregate_raw_ptr
intrinsic codegen
#125184
Conversation
r? @fee1-dead rustbot has assigned @fee1-dead. Use |
aggregate_raw_ptr
instrinsic codegenaggregate_raw_ptr
intrinsic codegen
use std::intrinsics::aggregate_raw_ptr; | ||
|
||
// InstSimplify replaces these with casts if it can, which means they're almost | ||
// never seen in codegen, but PR#121571 found a way, so add a test for it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ICE demonstration: https://godbolt.org/z/Y7o63MzPn
Hmm, I might be doing something wrong, but this doesn't seem to actually fix the issue encountered in #121571; rebased on this commit and still running into the same ICE. I pushed the rebased version onto that branch for you to test, which should also help verify if it's still breaking on CI and isn't just my setup. EDIT: Yup, it's still happening on CI. #121571 (comment) EDIT 2: Oh, it's just that the bug is in the bootstrap compiler. :( |
r? compiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! The changes look good to me.
@bors r+ rollup |
…iaskrgr Rollup of 4 pull requests Successful merges: - rust-lang#125117 (Improve parser) - rust-lang#125184 (Fix ICE in non-operand `aggregate_raw_ptr` intrinsic codegen) - rust-lang#125240 (Temporarily revert to NonZeroUsize in rustc-abi to fix building on stable) - rust-lang#125248 (Migrate `run-make/rustdoc-scrape-examples-invalid-expr` to `rmake.rs`) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#125184 - scottmcm:fix-thin-ptr-ice, r=jieyouxu Fix ICE in non-operand `aggregate_raw_ptr` intrinsic codegen Introduced in rust-lang#123840 Found in rust-lang#121571, cc `@clarfonthey`
I would like this in beta so that the stage0 compiler does not ICE if it gets passed |
[beta] backports - Fix insufficient logic when searching for the underlying allocation rust-lang#124761 - Handle field projections like slice indexing in invalid_reference_casting rust-lang#124908 - Handle Deref expressions in invalid_reference_casting rust-lang#124978 - Fix ICE in non-operand `aggregate_raw_ptr` instrinsic codegen rust-lang#125184 - Wrap Context.ext in AssertUnwindSafe rust-lang#125392 - Revert problematic opaque type change rust-lang#125489 - ast: Revert a breaking attribute visiting order change rust-lang#125734 - Update to LLVM 18.1.7 rust-lang#126061 r? cuviper
[beta] backports - Fix insufficient logic when searching for the underlying allocation rust-lang#124761 - Handle field projections like slice indexing in invalid_reference_casting rust-lang#124908 - Handle Deref expressions in invalid_reference_casting rust-lang#124978 - Fix ICE in non-operand `aggregate_raw_ptr` instrinsic codegen rust-lang#125184 - Wrap Context.ext in AssertUnwindSafe rust-lang#125392 - Revert problematic opaque type change rust-lang#125489 - ast: Revert a breaking attribute visiting order change rust-lang#125734 - Update to LLVM 18.1.7 rust-lang#126061 - Revert "Disallow ambiguous attributes on expressions" on beta rust-lang#126102 / rust-lang#126101 - Silence double-symlink errors while building solaris toolchain rust-lang#126011 r? cuviper
[beta] backports - Fix insufficient logic when searching for the underlying allocation rust-lang#124761 - Handle field projections like slice indexing in invalid_reference_casting rust-lang#124908 - Handle Deref expressions in invalid_reference_casting rust-lang#124978 - Fix ICE in non-operand `aggregate_raw_ptr` instrinsic codegen rust-lang#125184 - Wrap Context.ext in AssertUnwindSafe rust-lang#125392 - Revert problematic opaque type change rust-lang#125489 - ast: Revert a breaking attribute visiting order change rust-lang#125734 - Update to LLVM 18.1.7 rust-lang#126061 - Revert "Disallow ambiguous attributes on expressions" on beta rust-lang#126102 / rust-lang#126101 - Silence double-symlink errors while building solaris toolchain rust-lang#126011 r? cuviper
Introduced in #123840
Found in #121571, cc @clarfonthey