Skip to content

🔴 BREAKING cases

ABI breaks: existing consumers will fail at runtime.

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