Skip to content

🔴 BREAKING cases

ABI breaks: existing consumers will fail at runtime.

92 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
case100_experimental_removed_without_replacement experimental:: removed without replacement (API break) 🔴 BREAKING Breaking
case101_inline_namespace_version_bumped inline namespace version bumped (BREAKING) 🔴 BREAKING Breaking
case102_frozen_runtime_signature_changed Frozen Runtime Signature Changed (oneTBB detail::r1 shape) 🔴 BREAKING Breaking
case104_glibcxx_dual_abi_flip libstdc++ dual-ABI flip (glibcxx_dual_abi_flip_detected) 🔴 BREAKING Breaking
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
case10_return_type Return Type Change 🔴 BREAKING Breaking
case110_concurrent_unordered_map_api_drift concurrent_unordered_map API Drift 🔴 BREAKING Breaking
case112_lp64_ilp64 LP64 → ILP64 integer-model switch (oneMKL MKL_INT 32→64) 🔴 BREAKING Breaking
case113_abi_tag_changed ABI-tag set change ([abi:cxx11] lost on a single symbol) 🔴 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 new ChangeKind) 🔴 BREAKING Breaking
case11_global_var_type Global Variable Type Change 🔴 BREAKING Breaking
case121_kernel_btf_struct_field_added Kernel BTF struct grows a field (out-of-tree module break) 🔴 BREAKING Breaking
case126_sycl_device_impl_ptr SYCL device impl pointer — shared_ptr → raw pointer 🔴 BREAKING Breaking
case127_data_object_size_changed Exported Data Object Size Change 🔴 BREAKING Breaking
case129_struct_return_convention Struct-Return Convention Change 🔴 BREAKING Breaking
case12_function_removed Function Removed from Shared Library 🔴 BREAKING Breaking
case139_symbol_version_node_removed Symbol Version Node Removed 🔴 BREAKING Breaking
case140_empty_base_optimization_lost Empty Base Optimization Lost (base subobject moved) 🔴 BREAKING Breaking
case141_versioned_symbol_scheme Versioned-Symbol Scheme (library-wide rename) 🔴 BREAKING Breaking
case142_vtable_slot_count_binary_only Vtable Slot Count Changed (detected from a stripped binary) 🔴 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
case26_union_field_added Union Field Added 🔴 BREAKING Breaking
case28_typedef_opaque Typedef and Opaque Type Changes 🔴 BREAKING Breaking
case30_field_qualifiers Field Qualifier Changes (const, volatile) 🔴 BREAKING Breaking
case33_pointer_level - Pointer Level Change 🔴 BREAKING Breaking
case35_field_rename - Field Rename 🔴 BREAKING Breaking
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
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
case78_task_arena_attach_tag task_arena::attach Tag Type Replaces Enum 🔴 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
case85_internal_template_signature_changed internal function-template signature leaks via public API (BREAKING) 🔴 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
case88_cpo_kind_changed CPO kind changed (BREAKING) 🔴 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
case97_api_depends_on_consumer_env public API depends on consumer build environment (RISK) 🔴 BREAKING Breaking