-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 Itanium mangling usizes #122855
Fix Itanium mangling usizes #122855
Conversation
Arrays, surprisingly, are not sized to u64 on all platforms.
Some changes occurred in compiler/rustc_symbol_mangling/src/typeid cc @rust-lang/project-exploit-mitigations, @rcvalle |
LGTM. I'm guessing the confusion (I had this too when reading the code) was expecting that |
@bors r+ rollup |
Would it be possible to validate this fixes your problem locally @maurer? No need to block the PR since it's strictly more correct imo |
slightly more complicated encoding: we shove all ints inside 16-byte arrays and then read them back out, but track what our size was. that code was actually one of the first places I ever touched in compiler PRs. |
Just confirmed that this removes the ICE in the build process that hit it originally. |
…inism, r=compiler-errors Fix Itanium mangling usizes Arrays, surprisingly, are not sized to u64 on all platforms. Fixes rust-lang#122851. r? `@compiler-errors` cc `@maurer`
…inism, r=compiler-errors Fix Itanium mangling usizes Arrays, surprisingly, are not sized to u64 on all platforms. Fixes rust-lang#122851. r? ``@compiler-errors`` cc ``@maurer``
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#121619 (Experimental feature postfix match) - rust-lang#122370 (Gracefully handle `AnonConst` in `diagnostic_hir_wf_check()`) - rust-lang#122537 (interpret/allocation: fix aliasing issue in interpreter and refactor getters a bit) - rust-lang#122542 (coverage: Clean up marker statements that aren't needed later) - rust-lang#122800 (Add `NonNull::<[T]>::is_empty`.) - rust-lang#122820 (Stop using `<DefId as Ord>` in various diagnostic situations) - rust-lang#122847 (Suggest `RUST_MIN_STACK` workaround on overflow) - rust-lang#122855 (Fix Itanium mangling usizes) - rust-lang#122863 (add more ice tests ) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#122855 - workingjubilee:mangle-64-bit-chauvinism, r=compiler-errors Fix Itanium mangling usizes Arrays, surprisingly, are not sized to u64 on all platforms. Fixes rust-lang#122851. r? ```@compiler-errors``` cc ```@maurer```
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#121619 (Experimental feature postfix match) - rust-lang#122370 (Gracefully handle `AnonConst` in `diagnostic_hir_wf_check()`) - rust-lang#122537 (interpret/allocation: fix aliasing issue in interpreter and refactor getters a bit) - rust-lang#122542 (coverage: Clean up marker statements that aren't needed later) - rust-lang#122800 (Add `NonNull::<[T]>::is_empty`.) - rust-lang#122820 (Stop using `<DefId as Ord>` in various diagnostic situations) - rust-lang#122847 (Suggest `RUST_MIN_STACK` workaround on overflow) - rust-lang#122855 (Fix Itanium mangling usizes) - rust-lang#122863 (add more ice tests ) r? `@ghost` `@rustbot` modify labels: rollup
Arrays, surprisingly, are not sized to u64 on all platforms.
Fixes #122851.
r? @compiler-errors
cc @maurer