L1 — + debug info¶
Needs debug information on top of the binary.
74 case(s). ← back to all examples
| Case | Title | Verdict | Category |
|---|---|---|---|
| case02_param_type_change | Parameter Type Change | 🔴 BREAKING | Breaking |
| case07_struct_layout | Struct Layout Change | 🔴 BREAKING | Breaking |
| case08_enum_value_change | Enum Value Change | 🔴 BREAKING | Breaking |
| case09_cpp_vtable | C++ Vtable Change | 🔴 BREAKING | Breaking |
| case10_return_type | Return Type Change | 🔴 BREAKING | Breaking |
| case11_global_var_type | Global Variable Type Change | 🔴 BREAKING | Breaking |
| case14_cpp_class_size | C++ Class Size Change | 🔴 BREAKING | Breaking |
| case17_template_abi | Template Instantiation ABI Change | 🔴 BREAKING | Breaking |
| case18_dependency_leak | Dependency ABI Leak | 🔴 BREAKING | Breaking |
| case19_enum_member_removed | Enum Member Removed | 🔴 BREAKING | Breaking |
| case20_enum_member_value_changed | Enum Member Value Changed | 🔴 BREAKING | Breaking |
| case21_method_became_static | Method Became Static | 🔴 BREAKING | Breaking |
| case22_method_const_changed | Method Const Qualifier Changed | 🔴 BREAKING | Breaking |
| case23_pure_virtual_added | Virtual Method Became Pure Virtual | 🔴 BREAKING | Breaking |
| case24_union_field_removed | Union Field Removed | 🔴 BREAKING | Breaking |
| case25_enum_member_added | Enum Member Added | 🟢 COMPATIBLE | Addition (Compatible) |
| 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) |
| case28_typedef_opaque | Typedef and Opaque Type Changes | 🔴 BREAKING | Breaking |
| case30_field_qualifiers | Field Qualifier Changes (const, volatile) | 🔴 BREAKING | Breaking |
| case31_enum_rename | Enum Member Rename | 🟠 API_BREAK | API Break |
| case33_pointer_level | Pointer Level Change | 🔴 BREAKING | Breaking |
| case35_field_rename | Field Rename | 🟠 API_BREAK | API Break |
| case36_anon_struct | Anonymous Struct/Union Change | 🔴 BREAKING | Breaking |
| case37_base_class | Base Class Changes | 🔴 BREAKING | Breaking |
| case38_virtual_methods | Virtual Method Changes | 🔴 BREAKING | Breaking |
| case39_var_const | Variable Const Change | 🔴 BREAKING | Breaking |
| case40_field_layout | Field Layout Changes | 🔴 BREAKING | Breaking |
| case41_type_changes | Type-Level Changes | 🔴 BREAKING | Breaking |
| case42_type_alignment_changed | Type Alignment Changed (standalone alignas) | 🔴 BREAKING | Breaking |
| case43_base_class_member_added | Base Class Member Added | 🔴 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 |
| case46_pointer_chain_type_change | Pointer Chain 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 |
| case57_enum_underlying_size_changed | Enum Underlying Size Changed | 🔴 BREAKING | Breaking |
| case60_base_class_position_changed | Base Class Position Changed (Multiple Inheritance Reorder) | 🔴 BREAKING | Breaking |
| case63_bitfield_changed | Bitfield Width Changed | 🔴 BREAKING | Breaking |
| case64_calling_convention_changed | Calling Convention Changed | 🔴 BREAKING | Breaking |
| case67_tls_var_size_changed | TLS Variable Size Changed | 🔴 BREAKING | Breaking |
| case68_virtual_method_added | Virtual Method Added to Non-Virtual Class | 🔴 BREAKING | Breaking |
| case69_trivial_to_nontrivial | Trivially Copyable to Non-Trivial (Calling Convention Change) | 🔴 BREAKING | Breaking |
| case70_flexible_array_member_changed | Flexible Array Member Element Type Changed | 🔴 BREAKING | Breaking |
| case72_covariant_return_changed | Covariant Return Type Changed | 🔴 BREAKING | Breaking |
| case73_typedef_underlying_changed | Typedef Underlying Type Changed | 🔴 BREAKING | Breaking |
| case77_detail_templated_base_changed | Internal detail:: Templated Base Class Layout Change |
🔴 BREAKING | Breaking |
| case78_task_arena_attach_tag | task_arena::attach Tag Type Replaces Enum |
🔴 BREAKING | Breaking |
| case80_pimpl_shared_to_unique | Pimpl Alias Switched from shared_ptr to unique_ptr |
🔴 BREAKING | Breaking |
| case94_empty_tag_gained_state | Empty Tag Gained State | 🔴 BREAKING | Breaking |
| case95_allocator_nested_typedef_removed | Allocator Nested-Typedef Removed | 🔴 BREAKING | Breaking |
| case102_frozen_runtime_signature_changed | Frozen Runtime Signature Changed | 🔴 BREAKING | Breaking |
| case103_toolchain_flag_drift | Toolchain Flag Drift | 🟢 COMPATIBLE | Quality (Compatible) |
| case107_task_scheduler_init_removed | task_scheduler_init Removed (historical ABI break) |
🔴 BREAKING | Breaking |
| case108_task_class_removed | task Class Removed (historical ABI break — vtable angle) |
🔴 BREAKING | Breaking |
| case109_flow_graph_policy_renames | flow::graph Policy Tag Renames | 🔴 BREAKING | Breaking |
| case112_lp64_ilp64 | LP64 → ILP64 Integer-Model Switch (oneMKL MKL_INT 32→64) | 🔴 BREAKING | Breaking |
| case114_char8t_migration | char8_t Migration (C++20 char-family → char8_t) | 🔴 BREAKING | Breaking |
| case115_bit_int_width_changed | _BitInt(N) Width Change (C23 64 → 128) | 🔴 BREAKING | Breaking |
| case116_atomic_qualifier_changed | _Atomic Qualifier Added (C11) | 🔴 BREAKING | Breaking |
| case117_no_unique_address | [[no_unique_address]] Layout Overlay (no dedicated ChangeKind) | 🔴 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 |
| case129_struct_return_convention | Struct-Return Convention Change | 🔴 BREAKING | Breaking |
| case140_empty_base_optimization_lost | Empty Base Optimization Lost (base subobject moved) | 🔴 BREAKING | Breaking |
| case165_polymorphic_nonvirtual_dtor | Polymorphic Type Without a Virtual Destructor (New Anti-Pattern) | 🟡 COMPATIBLE_WITH_RISK | Risk |
| case167_base_became_virtual | Base Class Became Virtual (: public Device → : public virtual Device) |
🔴 BREAKING | Breaking |
| case174_secondary_vtable_group_changed | Secondary Vtable Group Changed | 🔴 BREAKING | Breaking |
| case198_public_struct_field_reorder | Public Struct Field Reorder | 🔴 BREAKING | Breaking |
| case199_public_function_parameter_added | Parameter Added to an Exported Function | 🔴 BREAKING | Breaking |
| case201_public_function_parameters_reordered | Public Function Parameters Reordered | 🔴 BREAKING | Breaking |
| case203_class_gained_vtable_pointer | Class Gained a Vtable Pointer | 🔴 BREAKING | Breaking |