Breaking cases¶
Listed in BREAKING_KINDS — runtime ABI break.
76 case(s). ← back to all examples
| Case | Title | Verdict | Category |
|---|---|---|---|
| case01_symbol_removal | Symbol Removal | 🔴 BREAKING | Breaking |
| case02_param_type_change | Parameter Type Change | 🔴 BREAKING | Breaking |
| case06_visibility | Symbol Visibility Leak | 🔴 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 |
| case107_task_scheduler_init_removed | task_scheduler_init Removed (oneTBB historical break) |
🔴 BREAKING | Breaking |
| case108_task_class_removed | task Class Removed (oneTBB historical break — vtable angle) |
🔴 BREAKING | Breaking |
| case109_flow_graph_policy_renames | flow::graph Policy Tag Renames | 🔴 BREAKING | Breaking |
| case10_return_type | Return Type Change | 🔴 BREAKING | Breaking |
| case110_concurrent_unordered_map_api_drift | concurrent_unordered_map API Drift | 🔴 BREAKING | Breaking |
| case112_task_arena_attach_tag | task_arena::attach Tag Type Replaces Enum | 🔴 BREAKING | Breaking |
| case113_internal_template_signature_changed | case113 — internal function-template signature leaks via public API (BREAKING) | 🔴 BREAKING | Breaking |
| case114_cpo_kind_changed | case114 — CPO kind changed (BREAKING) | 🔴 BREAKING | Breaking |
| case118_experimental_removed_without_replacement | : removed without replacement (API break) | 🔴 BREAKING | Breaking |
| case119_inline_namespace_version_bumped | case112 — inline namespace version bumped (BREAKING) | 🔴 BREAKING | Breaking |
| case11_global_var_type | Global Variable Type Change | 🔴 BREAKING | Breaking |
| case12_function_removed | Function Removed from Shared Library | 🔴 BREAKING | Breaking |
| case14_cpp_class_size | C++ Class Size Change | 🔴 BREAKING | Breaking |
| case17_template_abi | Case 17 — Template Instantiation ABI Change | 🔴 BREAKING | Breaking |
| case18_dependency_leak | Case 18 — Dependency ABI Leak | 🔴 BREAKING | Breaking |
| case19_enum_member_removed | Case 19 — Enum Member Removed | 🔴 BREAKING | Breaking |
| case20_enum_member_value_changed | Case 20 — Enum Member Value Changed | 🔴 BREAKING | Breaking |
| case21_method_became_static | Case 21 — Method Became Static | 🔴 BREAKING | Breaking |
| case22_method_const_changed | Case 22 — Method Const Qualifier Changed | 🔴 BREAKING | Breaking |
| case23_pure_virtual_added | Case 23 — Virtual Method Became Pure Virtual | 🔴 BREAKING | Breaking |
| case24_union_field_removed | Case 24 — Union Field Removed | 🔴 BREAKING | Breaking |
| case26_union_field_added | Case 26 — Union Field Added | 🔴 BREAKING | Breaking |
| case28_typedef_opaque | Case 28 — Typedef and Opaque Type Changes | 🔴 BREAKING | Breaking |
| case30_field_qualifiers | Case 30 — Field Qualifier Changes (const, volatile) | 🔴 BREAKING | Breaking |
| case33_pointer_level | Case 33 -- Pointer Level Change | 🔴 BREAKING | Breaking |
| case35_field_rename | Case 35 -- Field Rename | 🔴 BREAKING | Breaking |
| case36_anon_struct | Case 36 -- Anonymous Struct/Union Change | 🔴 BREAKING | Breaking |
| case37_base_class | Case 37 -- 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 |
| case53_namespace_pollution | Namespace Pollution (Generic Symbol Names) | 🔴 BREAKING | Breaking |
| 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 |
| case58_var_removed | Global Variable Removed | 🔴 BREAKING | Breaking |
| case59_func_became_inline | Function Became Inline (outlined → inline) | 🔴 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 |
| case65_symbol_version_removed | Symbol Version Removed | 🔴 BREAKING | Breaking |
| case66_language_linkage_changed | Language Linkage Changed (extern "C" removed) | 🔴 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 |
| case71_inline_namespace_moved | Inline Namespace Moved | 🔴 BREAKING | Breaking |
| case72_covariant_return_changed | Covariant Return Type Changed | 🔴 BREAKING | Breaking |
| case73_typedef_underlying_changed | Typedef Underlying Type Changed | 🔴 BREAKING | Breaking |
| case74_detail_base_class_changed | Internal detail:: base class layout change leaks via public API |
🔴 BREAKING | Breaking |
| case75_detail_embedded_by_value | Internal detail:: impl struct embedded by value |
🔴 BREAKING | Breaking |
| case76_detail_pimpl_vtable_changed | Internal detail:: polymorphic base vtable change |
🔴 BREAKING | Breaking |
| case77_detail_templated_base_changed | Internal detail:: templated base class layout change |
🔴 BREAKING | Breaking |
| case79_missing_template_instantiation | Missing template instantiation in shipped binary | 🔴 BREAKING | Breaking |
| case80_pimpl_shared_to_unique | Pimpl alias changed from shared_ptr to unique_ptr |
🔴 BREAKING | Breaking |
| case81_serialization_tag_reassigned | Serialization tag ID reassigned | 🔴 BREAKING | Breaking |
| case82_sycl_overload_set_removed | SYCL overload set removed (DPC++ build withdrawn) | 🔴 BREAKING | Breaking |
| case84_bundle_soname_skew | Multi-library bundle SONAME skew | 🔴 BREAKING | Breaking |
| case86_tag_struct_renamed | Tag struct renamed (empty class re-mangling) | 🔴 BREAKING | Breaking |
| case87_default_template_arg_changed | Default template argument changed | 🔴 BREAKING | Breaking |
| case89_inline_accessor_renamed_pimpl_member | Inline accessor references renamed pimpl member | 🔴 BREAKING | Breaking |
| case94_empty_tag_gained_state | Empty Tag Gained State | 🔴 BREAKING | Breaking |
| case95_allocator_nested_typedef_removed | Allocator Nested-Typedef Removed | 🔴 BREAKING | Breaking |