Subject: Struct and type layout changes¶
A struct, union, or opaque record's own size, field order, offsets, packing, alignment, or bitfield widths change -- the core "does the compiled layout still match" family.
21 case(s). ← back to all subjects
Cases¶
| Case | Title | Verdict | Category |
|---|---|---|---|
| case07_struct_layout | Struct Layout Change | 🔴 BREAKING | Breaking |
| case14_cpp_class_size | C++ Class Size Change | 🔴 BREAKING | Breaking |
| case18_dependency_leak | Dependency ABI Leak | 🔴 BREAKING | Breaking |
| case24_union_field_removed | Union Field Removed | 🔴 BREAKING | Breaking |
| case26_union_field_added | Union Field Added (Size Grows) | 🔴 BREAKING | Breaking |
| case26b_union_field_added_compatible | Union Field Added (No Size Change) | 🟢 COMPATIBLE | Addition (Compatible) |
| case30_field_qualifiers | Field Qualifier Changes (const, volatile) | 🔴 BREAKING | Breaking |
| case36_anon_struct | Anonymous Struct/Union Change | 🔴 BREAKING | Breaking |
| case40_field_layout | Field Layout Changes | 🔴 BREAKING | Breaking |
| case42_type_alignment_changed | Type Alignment Changed (standalone alignas) | 🔴 BREAKING | Breaking |
| case44_cyclic_type_member_added | Cyclic Type Member Added | 🔴 BREAKING | Breaking |
| case45_multi_dim_array_change | Multi-Dimensional Array Element Type Change | 🔴 BREAKING | Breaking |
| case48_leaf_struct_through_pointer | Leaf Struct Change Propagated Through Pointer | 🔴 BREAKING | Breaking |
| case54_used_reserved_field | Used Reserved Field | 🟢 COMPATIBLE | Quality (Compatible) |
| case55_type_kind_changed | Type Kind Changed (struct → union) | 🔴 BREAKING | Breaking |
| case56_struct_packing_changed | Struct Packing Changed (pragma pack) | 🔴 BREAKING | Breaking |
| case63_bitfield_changed | Bitfield Width Changed | 🔴 BREAKING | Breaking |
| case70_flexible_array_member_changed | Flexible Array Member Element Type Changed | 🔴 BREAKING | Breaking |
| case121_kernel_btf_struct_field_added | Kernel BTF Struct Field Growth | 🔴 BREAKING | Breaking |
| case126_sycl_device_impl_ptr | SYCL device Impl Pointer — shared_ptr → Raw Pointer |
🔴 BREAKING | Breaking |
| case198_public_struct_field_reorder | Public Struct Field Reorder | 🔴 BREAKING | Breaking |