about summary refs log tree commit diff
path: root/compiler/rustc_data_structures/src/lib.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-01-22 13:08:19 +0000
committerbors <bors@rust-lang.org>2024-01-22 13:08:19 +0000
commit30662530506ed29ea29191798cb2ab8aa1249023 (patch)
tree039547cecf2495f9a128a1b06602923cab3e0f2a /compiler/rustc_data_structures/src/lib.rs
parent366d112fa69164d79239ceeaa49e06497df5497f (diff)
parent33e04228262cb7ac76023a94d3811e62518cfc42 (diff)
downloadrust-30662530506ed29ea29191798cb2ab8aa1249023.tar.gz
rust-30662530506ed29ea29191798cb2ab8aa1249023.zip
Auto merge of #120080 - cuviper:128-align-packed, r=nikic
Pack u128 in the compiler to mitigate new alignment

This is based on #116672, adding a new `#[repr(packed(8))]` wrapper on `u128` to avoid changing any of the compiler's size assertions. This is needed in two places:

* `SwitchTargets`, otherwise its `SmallVec<[u128; 1]>` gets padded up to 32 bytes.
* `LitKind::Int`, so that entire `enum` can stay 24 bytes.
  * This change definitely has far-reaching effects though, since it's public.
Diffstat (limited to 'compiler/rustc_data_structures/src/lib.rs')
-rw-r--r--compiler/rustc_data_structures/src/lib.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_data_structures/src/lib.rs b/compiler/rustc_data_structures/src/lib.rs
index 93b4032c310..077e90350a3 100644
--- a/compiler/rustc_data_structures/src/lib.rs
+++ b/compiler/rustc_data_structures/src/lib.rs
@@ -93,6 +93,7 @@ pub mod aligned;
 pub mod frozen;
 mod hashes;
 pub mod owned_slice;
+pub mod packed;
 pub mod sso;
 pub mod steal;
 pub mod tagged_ptr;