Skip to content

L2 — + headers

Needs the public headers parsed alongside the binary.

49 case(s). ← back to all examples

Case Title Verdict Category
case32_param_defaults Parameter Default Value Changes (C++) 🟠 API_BREAK API Break
case34_access_level Access Level Changed 🟠 API_BREAK API Break
case74_detail_base_class_changed Internal detail:: base class layout change leaks via public API 🔴 BREAKING Breaking
case75_detail_embedded_by_value Internal detail:: Struct Embedded by Value 🔴 BREAKING Breaking
case76_detail_pimpl_vtable_changed Internal detail:: Polymorphic Base Vtable Change 🔴 BREAKING Breaking
case79_missing_template_instantiation Missing Template Instantiation in Shipped Binary 🔴 BREAKING Breaking
case81_serialization_tag_reassigned Serialization Tag ID Reassigned 🔴 BREAKING Breaking
case85_internal_template_signature_changed Internal Template Signature Changed 🔴 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
case96_hidden_friend_removed Hidden Friend Operator Removed 🟠 API_BREAK API Break
case106_ctor_became_explicit Conversion Operator Became explicit 🟠 API_BREAK API Break
case111_enumerable_thread_specific_lambda_ambiguity enumerable_thread_specific Lambda-Init Ambiguity 🟡 COMPATIBLE_WITH_RISK Risk
case118_internal_struct_field_added_scoped Internal Struct Gains a Field (Non-Public, Scoped) ✅ NO_CHANGE No Change
case119_internal_struct_field_removed_scoped Internal Struct Loses a Field (Non-Public, Scoped) ✅ NO_CHANGE No Change
case120_internal_struct_reordered_scoped Internal Struct Fields Reordered (Non-Public, Scoped) ✅ NO_CHANGE No Change
case122_template_signature_uninstantiated Uninstantiated Template Signature Change 🟠 API_BREAK API Break
case123_default_argument_removed Default Argument Removed 🟠 API_BREAK API Break
case124_header_constant_value_changed Header Constant Value Changed 🟠 API_BREAK API Break
case125_class_became_final Class Became final 🟠 API_BREAK API Break
case143_audit_accidental_export Accidental Export (Single-Release Audit) 🟢 COMPATIBLE Quality (Compatible)
case144_audit_private_header_leak Private Header Leak (Single-Release Audit) 🟢 COMPATIBLE Quality (Compatible)
case146_audit_rtti_for_internal RTTI Exported for an Internal Type (Single-Release Audit) 🟢 COMPATIBLE Quality (Compatible)
case147_scan_depth_ladder Depth Ladder — the Same Input Answered at Increasing Depth 🟢 COMPATIBLE Quality (Compatible)
case150_xcheck_export_public_pair Bidirectional Export ↔ Declaration Pair 🟢 COMPATIBLE Quality (Compatible)
case151_xcheck_provider_matrix Provider-Agreement Matrix (Corroboration Grows With Evidence) 🟢 COMPATIBLE Quality (Compatible)
case163_python_kwarg_renamed Python Keyword Argument Renamed (Stub-Only API Break) 🟠 API_BREAK API Break
case166_ref_qualifier_added Method Ref-Qualifier Added (str() → str() &) 🔴 BREAKING Breaking
case168_virtual_method_devirtualized Virtual Method Devirtualized (flush() leaves the vtable) 🔴 BREAKING Breaking
case184_internal_enum_churn_scoped Internal Enum Churn, Scoped Out by Private-Header Origin ✅ NO_CHANGE No Change
case186_c_api_pointee_const_abi_neutral C API Pointee const-Qualification — ABI-Neutral, Not Source-Neutral 🟡 COMPATIBLE_WITH_RISK Risk
case202_public_header_declaration_order_changed Public Header Declaration Order Changed ✅ NO_CHANGE No Change
case205_public_function_marked_deprecated Public Function Marked Deprecated 🟢 COMPATIBLE Quality (Compatible)
case206_deprecation_documented_without_attribute Deprecation Documented Without the Attribute ✅ NO_CHANGE No Change
case207_pointer_parameter_gained_restrict Pointer Parameter Gained restrict 🟡 COMPATIBLE_WITH_RISK Risk
case208_restrict_added_to_definition_only restrict Added to the Definition Only ✅ NO_CHANGE No Change
case210_calling_convention_respelled_via_macro Calling Convention Respelled via a Macro ✅ NO_CHANGE No Change
case211_return_pointee_gained_const Return Pointee Gained const 🟠 API_BREAK API Break
case214_calling_convention_macro_redefined_after_use Convention Macro Redefined After Use (Negative Control) ✅ NO_CHANGE No Change
case215_return_double_pointer_lost_const Returned Double Pointer Lost const 🟠 API_BREAK API Break
case222_public_consumer_compiled_dependency_changed Public Inline Body's Compiled-In Dependency Changes 🟡 COMPATIBLE_WITH_RISK Risk
case223_header_only_template_default_changed Header-Only Template Default Changed 🟠 API_BREAK API Break
case224_header_only_template_default_added Header-Only Template Default Added ✅ NO_CHANGE No Change
case225_header_only_template_default_removed Header-Only Template Default Removed 🟠 API_BREAK API Break
case226_header_only_template_default_unchanged Header-Only Template Default Unchanged ✅ NO_CHANGE No Change
case227_nested_namespace_template_default_changed Nested-Namespace Template Default Changed 🟠 API_BREAK API Break
case228_nontype_template_param_default_changed Non-Type Template Parameter Default Changed 🟠 API_BREAK API Break
case229_exported_template_default_changed Exported Template Default Changed 🔴 BREAKING Breaking