Skip to content

Detector specification matrix

One row per ChangeKind (254 total). Columns fuse the verdict partition (checker_policy), default policy (policy_for), and the weakest evidence layer at which the kind becomes detectable (scripts/evidence_tiers).

ChangeKind Category Default verdict Severity Min evidence Doc slug
abi_relevant_build_flag_changed risk COMPATIBLE_WITH_RISK warning unspecified abi_relevant_build_flag_changed
abi_surface_explosion quality COMPATIBLE warning unspecified abi_surface_explosion
abi_tag_changed breaking BREAKING error L0 abi_tag_changed
anon_field_changed breaking BREAKING error unspecified anon_field_changed
api_depends_on_consumer_env risk COMPATIBLE_WITH_RISK warning unspecified api_depends_on_consumer_env
atomic_qualifier_changed breaking BREAKING error L1 atomic_qualifier_changed
base_class_offset_changed breaking BREAKING error L1 base_class_offset_changed
base_class_position_changed breaking BREAKING error unspecified base_class_position_changed
base_class_virtual_changed breaking BREAKING error unspecified base_class_virtual_changed
behavioural_default_changed risk COMPATIBLE_WITH_RISK warning unspecified behavioural_default_changed
bit_int_width_changed breaking BREAKING error L1 bit_int_width_changed
build_context_changed quality COMPATIBLE warning unspecified build_context_changed
build_option_reaches_public_symbol risk COMPATIBLE_WITH_RISK warning unspecified build_option_reaches_public_symbol
bundle_intra_dep_removed breaking BREAKING error L0 bundle_intra_dep_removed
bundle_intra_dep_resolved_to_different_version risk COMPATIBLE_WITH_RISK warning unspecified bundle_intra_dep_resolved_to_different_version
bundle_intra_dep_signature_changed breaking BREAKING error L0 bundle_intra_dep_signature_changed
bundle_intra_type_changed breaking BREAKING error unspecified bundle_intra_type_changed
bundle_library_added addition COMPATIBLE warning unspecified bundle_library_added
bundle_library_removed breaking BREAKING error unspecified bundle_library_removed
bundle_manifest_instantiation_added addition COMPATIBLE warning unspecified bundle_manifest_instantiation_added
bundle_manifest_instantiation_removed breaking BREAKING error L0 bundle_manifest_instantiation_removed
bundle_provider_changed risk COMPATIBLE_WITH_RISK warning L0 bundle_provider_changed
bundle_soname_skew breaking BREAKING error L0 bundle_soname_skew
call_graph_public_entry_reachability_changed quality COMPATIBLE warning unspecified call_graph_public_entry_reachability_changed
calling_convention_changed breaking BREAKING error L1 calling_convention_changed
char8t_migration breaking BREAKING error L1 char8t_migration
common_symbol_risk quality COMPATIBLE warning unspecified common_symbol_risk
compat_version_changed breaking BREAKING error unspecified compat_version_changed
constant_added addition COMPATIBLE warning unspecified constant_added
constant_changed api_break API_BREAK warning L2 constant_changed
constant_removed api_break API_BREAK warning unspecified constant_removed
constexpr_value_changed api_break API_BREAK warning unspecified constexpr_value_changed
cpo_kind_changed breaking BREAKING error L2 cpo_kind_changed
cpu_dispatch_isa_dropped risk COMPATIBLE_WITH_RISK warning L0 cpu_dispatch_isa_dropped
ctor_explicit_added api_break API_BREAK warning L2 ctor_explicit_added
ctor_explicit_removed risk COMPATIBLE_WITH_RISK warning unspecified ctor_explicit_removed
cxx_standard_floor_raised api_break API_BREAK warning unspecified cxx_standard_floor_raised
default_argument_changed api_break API_BREAK warning unspecified default_argument_changed
default_template_arg_changed breaking BREAKING error L2 default_template_arg_changed
dwarf_info_missing quality COMPATIBLE warning unspecified dwarf_info_missing
enum_last_member_value_changed risk COMPATIBLE_WITH_RISK warning unspecified enum_last_member_value_changed
enum_member_added addition COMPATIBLE warning L1 enum_member_added
enum_member_removed breaking BREAKING error L1 enum_member_removed
enum_member_renamed api_break API_BREAK warning L1 enum_member_renamed
enum_member_value_changed breaking BREAKING error L1 enum_member_value_changed
enum_underlying_size_changed breaking BREAKING error L1 enum_underlying_size_changed
evidence_required_missing api_break API_BREAK warning unspecified evidence_required_missing
exceptions_mode_changed risk COMPATIBLE_WITH_RISK warning L3 exceptions_mode_changed
executable_stack quality COMPATIBLE warning unspecified executable_stack
executable_stack_removed quality COMPATIBLE warning L0 executable_stack_removed
experimental_graduated addition COMPATIBLE warning L0 experimental_graduated
experimental_removed_without_replacement api_break API_BREAK warning L0 experimental_removed_without_replacement
exported_not_public risk COMPATIBLE_WITH_RISK warning L2 exported_not_public
field_access_changed api_break API_BREAK warning unspecified field_access_changed
field_became_const quality COMPATIBLE warning unspecified field_became_const
field_became_mutable quality COMPATIBLE warning unspecified field_became_mutable
field_became_volatile quality COMPATIBLE warning unspecified field_became_volatile
field_bitfield_changed breaking BREAKING error L1 field_bitfield_changed
field_lost_const quality COMPATIBLE warning unspecified field_lost_const
field_lost_mutable quality COMPATIBLE warning unspecified field_lost_mutable
field_lost_volatile quality COMPATIBLE warning unspecified field_lost_volatile
field_renamed api_break API_BREAK warning L1 field_renamed
flexible_array_member_changed quality COMPATIBLE warning L1 flexible_array_member_changed
fortify_source_weakened risk COMPATIBLE_WITH_RISK warning unspecified fortify_source_weakened
frame_register_changed breaking BREAKING error unspecified frame_register_changed
func_added addition COMPATIBLE warning L0 func_added
func_became_inline api_break API_BREAK warning unspecified func_became_inline
func_cv_changed breaking BREAKING error L1 func_cv_changed
func_deleted breaking BREAKING error unspecified func_deleted
func_deleted_dwarf breaking BREAKING error unspecified func_deleted_dwarf
func_deleted_elf_fallback breaking BREAKING error unspecified func_deleted_elf_fallback
func_language_linkage_changed breaking BREAKING error L0 func_language_linkage_changed
func_likely_renamed breaking BREAKING error unspecified func_likely_renamed
func_lost_inline quality COMPATIBLE warning unspecified func_lost_inline
func_noexcept_added quality COMPATIBLE warning unspecified func_noexcept_added
func_noexcept_removed risk COMPATIBLE_WITH_RISK warning unspecified func_noexcept_removed
func_params_changed breaking BREAKING error L1 func_params_changed
func_pure_virtual_added breaking BREAKING error L1 func_pure_virtual_added
func_ref_qual_changed breaking BREAKING error unspecified func_ref_qual_changed
func_removed breaking BREAKING error L0 func_removed
func_removed_elf_only breaking BREAKING error L0 func_removed_elf_only
func_return_changed breaking BREAKING error L1 func_return_changed
func_static_changed breaking BREAKING error L1 func_static_changed
func_virtual_added breaking BREAKING error L1 func_virtual_added
func_virtual_became_pure breaking BREAKING error unspecified func_virtual_became_pure
func_virtual_removed breaking BREAKING error unspecified func_virtual_removed
func_visibility_changed breaking BREAKING error L0 func_visibility_changed
func_visibility_protected_changed quality COMPATIBLE warning unspecified func_visibility_protected_changed
generated_file_dependency_unstable risk COMPATIBLE_WITH_RISK warning unspecified generated_file_dependency_unstable
generated_header_changed risk COMPATIBLE_WITH_RISK warning unspecified generated_header_changed
generated_header_reaches_public_api risk COMPATIBLE_WITH_RISK warning unspecified generated_header_reaches_public_api
glibcxx_dual_abi_flip_detected quality COMPATIBLE warning L0 glibcxx_dual_abi_flip_detected
handle_type_changed breaking BREAKING error unspecified handle_type_changed
header_build_context_mismatch api_break API_BREAK warning L3 header_build_context_mismatch
header_parse_context_drift risk COMPATIBLE_WITH_RISK warning unspecified header_parse_context_drift
hidden_friend_added addition COMPATIBLE warning unspecified hidden_friend_added
hidden_friend_removed api_break API_BREAK warning L2 hidden_friend_removed
ifunc_introduced quality COMPATIBLE warning unspecified ifunc_introduced
ifunc_removed quality COMPATIBLE warning unspecified ifunc_removed
include_graph_public_header_drift risk COMPATIBLE_WITH_RISK warning unspecified include_graph_public_header_drift
inline_body_changed risk COMPATIBLE_WITH_RISK warning unspecified inline_body_changed
inline_body_references_renamed_member breaking BREAKING error L2 inline_body_references_renamed_member
inline_namespace_moved breaking BREAKING error L0 inline_namespace_moved
inline_namespace_version_bumped breaking BREAKING error L0 inline_namespace_version_bumped
instantiation_missing_from_binary breaking BREAKING error L2 instantiation_missing_from_binary
integer_model_changed breaking BREAKING error L1 integer_model_changed
internal_template_leaks_via_public_api breaking BREAKING error L2 internal_template_leaks_via_public_api
internal_type_leaks_via_public_api breaking BREAKING error L2 internal_type_leaks_via_public_api
layer_coverage_asymmetric risk COMPATIBLE_WITH_RISK warning unspecified layer_coverage_asymmetric
layout_unverifiable risk COMPATIBLE_WITH_RISK warning unspecified layout_unverifiable
libcpp_abi_version_changed risk COMPATIBLE_WITH_RISK warning unspecified libcpp_abi_version_changed
link_export_policy_changed risk COMPATIBLE_WITH_RISK warning unspecified link_export_policy_changed
macho_cpu_type_changed breaking BREAKING error L0 macho_cpu_type_changed
mandatory_template_param_added api_break API_BREAK warning unspecified mandatory_template_param_added
method_access_changed api_break API_BREAK warning unspecified method_access_changed
needed_added quality COMPATIBLE warning L0 needed_added
needed_removed quality COMPATIBLE warning L0 needed_removed
odr_source_conflict risk COMPATIBLE_WITH_RISK warning unspecified odr_source_conflict
odr_type_variant api_break API_BREAK warning L4 odr_type_variant
opaque_invariant_broken breaking BREAKING error unspecified opaque_invariant_broken
overload_added risk COMPATIBLE_WITH_RISK warning unspecified overload_added
overload_set_rerouted risk COMPATIBLE_WITH_RISK warning unspecified overload_set_rerouted
param_became_va_list quality COMPATIBLE warning unspecified param_became_va_list
param_default_value_changed quality COMPATIBLE warning L2 param_default_value_changed
param_default_value_removed api_break API_BREAK warning L2 param_default_value_removed
param_lost_va_list quality COMPATIBLE warning unspecified param_lost_va_list
param_pointer_level_changed breaking BREAKING error L1 param_pointer_level_changed
param_renamed api_break API_BREAK warning unspecified param_renamed
param_restrict_changed quality COMPATIBLE warning unspecified param_restrict_changed
pe_forwarder_changed breaking BREAKING error L0 pe_forwarder_changed
pe_machine_changed breaking BREAKING error L0 pe_machine_changed
pie_disabled risk COMPATIBLE_WITH_RISK warning unspecified pie_disabled
polymorphic_type_non_virtual_dtor risk COMPATIBLE_WITH_RISK warning unspecified polymorphic_type_non_virtual_dtor
private_header_leak risk COMPATIBLE_WITH_RISK warning L2 private_header_leak
protected_visibility_changed risk COMPATIBLE_WITH_RISK warning unspecified protected_visibility_changed
public_api_exposes_stl_by_value risk COMPATIBLE_WITH_RISK warning unspecified public_api_exposes_stl_by_value
public_macro_value_changed api_break API_BREAK warning unspecified public_macro_value_changed
public_not_exported risk COMPATIBLE_WITH_RISK warning L2 public_not_exported
public_reachability_changed risk COMPATIBLE_WITH_RISK warning unspecified public_reachability_changed
public_surface_grew quality COMPATIBLE warning unspecified public_surface_grew
public_surface_shrank quality COMPATIBLE warning unspecified public_surface_shrank
public_to_internal_dependency risk COMPATIBLE_WITH_RISK warning L5 public_to_internal_dependency
public_typedef_target_changed api_break API_BREAK warning unspecified public_typedef_target_changed
relro_weakened risk COMPATIBLE_WITH_RISK warning L0 relro_weakened
removed_const_overload api_break API_BREAK warning unspecified removed_const_overload
return_pointer_level_changed breaking BREAKING error unspecified return_pointer_level_changed
rpath_changed quality COMPATIBLE warning unspecified rpath_changed
rtti_for_internal_type risk COMPATIBLE_WITH_RISK warning L2 rtti_for_internal_type
rtti_inheritance_changed breaking BREAKING error L0 rtti_inheritance_changed
rtti_mode_changed risk COMPATIBLE_WITH_RISK warning L3 rtti_mode_changed
runpath_changed quality COMPATIBLE warning L0 runpath_changed
serialization_tag_changed breaking BREAKING error L2 serialization_tag_changed
soname_bump_recommended quality COMPATIBLE warning unspecified soname_bump_recommended
soname_bump_unnecessary quality COMPATIBLE warning unspecified soname_bump_unnecessary
soname_changed risk COMPATIBLE_WITH_RISK warning unspecified soname_changed
soname_missing quality COMPATIBLE warning L0 soname_missing
source_binary_provenance_mismatch risk COMPATIBLE_WITH_RISK warning unspecified source_binary_provenance_mismatch
source_decl_binary_symbol_mismatch risk COMPATIBLE_WITH_RISK warning unspecified source_decl_binary_symbol_mismatch
source_level_kind_changed api_break API_BREAK warning unspecified source_level_kind_changed
source_to_binary_mapping_changed risk COMPATIBLE_WITH_RISK warning unspecified source_to_binary_mapping_changed
stack_canary_removed risk COMPATIBLE_WITH_RISK warning L0 stack_canary_removed
standard_layout_lost risk COMPATIBLE_WITH_RISK warning unspecified standard_layout_lost
std_reexport_removed api_break API_BREAK warning unspecified std_reexport_removed
stdlib_implementation_changed risk COMPATIBLE_WITH_RISK warning unspecified stdlib_implementation_changed
struct_alignment_changed breaking BREAKING error unspecified struct_alignment_changed
struct_field_offset_changed breaking BREAKING error unspecified struct_field_offset_changed
struct_field_removed breaking BREAKING error unspecified struct_field_removed
struct_field_type_changed breaking BREAKING error unspecified struct_field_type_changed
struct_packing_changed breaking BREAKING error L1 struct_packing_changed
struct_return_convention_changed breaking BREAKING error L1 struct_return_convention_changed
struct_size_changed breaking BREAKING error L1 struct_size_changed
sycl_backend_driver_req_changed risk COMPATIBLE_WITH_RISK warning unspecified sycl_backend_driver_req_changed
sycl_implementation_changed breaking BREAKING error unspecified sycl_implementation_changed
sycl_overload_set_removed breaking BREAKING error L0 sycl_overload_set_removed
sycl_pi_entrypoint_added addition COMPATIBLE warning unspecified sycl_pi_entrypoint_added
sycl_pi_entrypoint_removed breaking BREAKING error unspecified sycl_pi_entrypoint_removed
sycl_pi_version_changed breaking BREAKING error unspecified sycl_pi_version_changed
sycl_plugin_added addition COMPATIBLE warning unspecified sycl_plugin_added
sycl_plugin_removed breaking BREAKING error unspecified sycl_plugin_removed
sycl_plugin_search_path_changed risk COMPATIBLE_WITH_RISK warning unspecified sycl_plugin_search_path_changed
sycl_runtime_version_changed quality COMPATIBLE warning unspecified sycl_runtime_version_changed
symbol_binding_changed quality COMPATIBLE warning unspecified symbol_binding_changed
symbol_binding_strengthened quality COMPATIBLE warning L0 symbol_binding_strengthened
symbol_elf_visibility_changed quality COMPATIBLE warning unspecified symbol_elf_visibility_changed
symbol_leaked_from_dependency_changed risk COMPATIBLE_WITH_RISK warning unspecified symbol_leaked_from_dependency_changed
symbol_moved_version_node risk COMPATIBLE_WITH_RISK warning unspecified symbol_moved_version_node
symbol_renamed_batch breaking BREAKING error unspecified symbol_renamed_batch
symbol_size_changed breaking BREAKING error L0 symbol_size_changed
symbol_size_changed_const_object breaking BREAKING error unspecified symbol_size_changed_const_object
symbol_size_changed_internal breaking BREAKING error unspecified symbol_size_changed_internal
symbol_type_changed breaking BREAKING error unspecified symbol_type_changed
symbol_version_alias_changed risk COMPATIBLE_WITH_RISK warning unspecified symbol_version_alias_changed
symbol_version_defined_added quality COMPATIBLE warning unspecified symbol_version_defined_added
symbol_version_defined_removed breaking BREAKING error L0 symbol_version_defined_removed
symbol_version_node_removed breaking BREAKING error L0 symbol_version_node_removed
symbol_version_required_added risk COMPATIBLE_WITH_RISK warning unspecified symbol_version_required_added
symbol_version_required_added_compat quality COMPATIBLE warning unspecified symbol_version_required_added_compat
symbol_version_required_removed quality COMPATIBLE warning unspecified symbol_version_required_removed
tag_type_renamed breaking BREAKING error L0 tag_type_renamed
tail_padding_reuse_changed risk COMPATIBLE_WITH_RISK warning unspecified tail_padding_reuse_changed
template_body_changed risk COMPATIBLE_WITH_RISK warning unspecified template_body_changed
template_param_type_changed breaking BREAKING error unspecified template_param_type_changed
template_return_type_changed breaking BREAKING error unspecified template_return_type_changed
threadsafe_statics_mode_changed risk COMPATIBLE_WITH_RISK warning L3 threadsafe_statics_mode_changed
tls_model_changed risk COMPATIBLE_WITH_RISK warning L3 tls_model_changed
tls_var_size_changed breaking BREAKING error L1 tls_var_size_changed
toolchain_flag_drift quality COMPATIBLE warning L1 toolchain_flag_drift
toolchain_version_changed risk COMPATIBLE_WITH_RISK warning unspecified toolchain_version_changed
trivially_copyable_lost breaking BREAKING error unspecified trivially_copyable_lost
type_added addition COMPATIBLE warning unspecified type_added
type_alignment_changed breaking BREAKING error unspecified type_alignment_changed
type_base_changed breaking BREAKING error L1 type_base_changed
type_became_final api_break API_BREAK warning L2 type_became_final
type_became_opaque breaking BREAKING error L1 type_became_opaque
type_field_added breaking BREAKING error L1 type_field_added
type_field_added_compatible addition COMPATIBLE warning unspecified type_field_added_compatible
type_field_offset_changed breaking BREAKING error L1 type_field_offset_changed
type_field_removed breaking BREAKING error unspecified type_field_removed
type_field_type_changed breaking BREAKING error unspecified type_field_type_changed
type_kind_changed breaking BREAKING error L1 type_kind_changed
type_lost_final risk COMPATIBLE_WITH_RISK warning unspecified type_lost_final
type_removed breaking BREAKING error L1 type_removed
type_size_changed breaking BREAKING error L1 type_size_changed
type_visibility_changed breaking BREAKING error unspecified type_visibility_changed
type_vtable_changed breaking BREAKING error L1 type_vtable_changed
typedef_base_changed breaking BREAKING error L1 typedef_base_changed
typedef_removed breaking BREAKING error L1 typedef_removed
typedef_version_sentinel quality COMPATIBLE warning unspecified typedef_version_sentinel
undocumented_export_ratio_increased quality COMPATIBLE warning unspecified undocumented_export_ratio_increased
uninstantiated_template_removed api_break API_BREAK warning unspecified uninstantiated_template_removed
union_field_added addition COMPATIBLE warning unspecified union_field_added
union_field_removed breaking BREAKING error L1 union_field_removed
union_field_type_changed breaking BREAKING error unspecified union_field_type_changed
unspecified_return_now_named api_break API_BREAK warning unspecified unspecified_return_now_named
unversioned_exported_symbol risk COMPATIBLE_WITH_RISK warning L0 unversioned_exported_symbol
used_reserved_field quality COMPATIBLE warning L1 used_reserved_field
value_abi_trait_changed breaking BREAKING error L1 value_abi_trait_changed
var_access_changed api_break API_BREAK warning unspecified var_access_changed
var_access_widened quality COMPATIBLE warning unspecified var_access_widened
var_added addition COMPATIBLE warning L0 var_added
var_became_const breaking BREAKING error L1 var_became_const
var_lost_const breaking BREAKING error unspecified var_lost_const
var_removed breaking BREAKING error L0 var_removed
var_type_changed breaking BREAKING error L1 var_type_changed
var_value_changed quality COMPATIBLE warning unspecified var_value_changed
vector_abi_changed breaking BREAKING error unspecified vector_abi_changed
version_script_missing quality COMPATIBLE warning unspecified version_script_missing
versioned_symbol_scheme_detected risk COMPATIBLE_WITH_RISK warning L0 versioned_symbol_scheme_detected
virtual_method_added breaking BREAKING error unspecified virtual_method_added
visibility_leak quality COMPATIBLE warning unspecified visibility_leak
vptr_introduced breaking BREAKING error unspecified vptr_introduced
vtable_slot_count_changed breaking BREAKING error L0 vtable_slot_count_changed
vtable_symbol_identity_changed risk COMPATIBLE_WITH_RISK warning unspecified vtable_symbol_identity_changed
writable_executable_segment risk COMPATIBLE_WITH_RISK warning unspecified writable_executable_segment