libabigail
|
This file contains definitions of diff objects filtering facilities. More...
#include "abg-internal.h"
#include <memory>
#include "abg-comp-filter.h"
#include "abg-tools-utils.h"
#include "abg-ir-priv.h"
Go to the source code of this file.
Namespaces | |
namespace | abigail |
Toplevel namespace for libabigail. | |
namespace | abigail::comparison |
utilities to compare abi artifacts | |
namespace | abigail::comparison::filtering |
Facilities to walk, categorize and possibly filter nodes of the diff tree. | |
Functions | |
void | apply_filter (filter_base &filter, corpus_diff_sptr d) |
Walk the diff sub-trees of a a corpus_diff and apply a filter to the nodes visted. The filter categorizes each node, assigning it into one or several categories. More... | |
void | apply_filter (filter_base &filter, diff_sptr d) |
Walk a diff sub-tree and apply a filter to the nodes visted. The filter categorizes each node, assigning it into one or several categories. More... | |
void | apply_filter (filter_base_sptr filter, diff_sptr d) |
Walk a diff sub-tree and apply a filter to the nodes visted. The filter categorizes each node, assigning it into one or several categories. More... | |
bool | has_anonymous_data_member_change (const diff *d) |
Test if a diff node carries a non-anonymous data member to anonymous data member change, or vice-versa. More... | |
bool | has_anonymous_data_member_change (const diff_sptr &d) |
Test if a diff node carries a non-anonymous data member to anonymous data member change, or vice-versa. More... | |
bool | has_basic_or_class_type_name_change (const diff *d) |
Test if a diff node carries a basic or class type name change. More... | |
bool | has_basic_type_name_change (const diff *d) |
Test if a diff node carries a basic type name change. More... | |
bool | has_benign_array_of_unknown_size_change (const diff *dif) |
Test if a diff node carries a benign change to the size of a variable of type array. More... | |
bool | has_class_decl_only_def_change (const class_or_union_sptr &first, const class_or_union_sptr &second) |
Test if two class_or_union_sptr are different just by the fact that one is decl-only and the other one is defined. More... | |
bool | has_class_decl_only_def_change (const diff *diff) |
Test if a class_or_union_diff carries a change in which the two classes are different by the fact that one is a decl-only and the other one is defined. More... | |
bool | has_class_or_union_type_name_change (const diff *d) |
Test if a diff node carries a class or union type name change. More... | |
bool | has_data_member_replaced_by_anon_dm (const diff *diff) |
Test if a class_or_union_diff has a data member replaced by an anonymous data member in a harmless way. That means, the new anonymous data member somehow contains the replaced data member and it doesn't break the layout of the containing class. More... | |
bool | has_decl_only_def_change (const decl_base_sptr &first, const decl_base_sptr &second) |
Test if two decl_base_sptr are different just by the fact that one is decl-only and the other one is defined. More... | |
bool | has_decl_only_def_change (const diff *d) |
Test if a diff carries a change in which the two decls are different by the fact that one is a decl-only and the other one is defined. More... | |
bool | has_enum_decl_only_def_change (const diff *diff) |
Test if a enum_diff carries a change in which the two enums are different by the fact that one is a decl-only and the other one is defined. More... | |
bool | has_enum_decl_only_def_change (const enum_type_decl_sptr &first, const enum_type_decl_sptr &second) |
Test if two enum_sptr are different just by the fact that one is decl-only and the other one is defined. More... | |
diff_category | has_fn_return_or_parm_harmful_change (const diff *d) |
Test if a diff node is a function diff node that carries either a return or a parameter type change that is deemed harmful. More... | |
bool | has_fn_with_virtual_offset_change (const diff *d) |
Test if a diff node carries a change to the offset of a virtual function. More... | |
bool | has_fn_with_virtual_offset_change (const diff_sptr &d) |
Test if a diff node carries a change to the offset of a virtual function. More... | |
bool | has_harmful_name_change (const decl_base_sptr &f, const decl_base_sptr &s, const diff_context_sptr &ctxt) |
Test if two decls represent a harmful name change. More... | |
bool | has_harmful_name_change (const diff *dif) |
Test if a diff node represents a harmful name change. More... | |
bool | has_harmless_enum_to_int_change (const diff *diff) |
Test if a diff node carries a harmless change of an enum into an integer (or vice-versa). More... | |
bool | has_harmless_name_change (const decl_base_sptr &f, const decl_base_sptr &s, const diff_context_sptr &ctxt) |
Test if two decls represents a harmless name change. More... | |
bool | has_incompatible_fn_or_var_change (const diff *d) |
Test if a diff node carries an incompatible ABI change. More... | |
bool | has_incompatible_fn_or_var_change (const diff_sptr &d) |
Test if a diff node carries an incompatible ABI change. More... | |
bool | has_lvalue_reference_ness_change (const diff *dif) |
Test if a diff node carries a change where an lvalue reference changed into a rvalue reference, or vice versa. More... | |
bool | has_strict_fam_conversion (const class_decl_sptr &first, const class_decl_sptr &second) |
Test if a class with a fake flexible data member got changed into a class with a real fexible data member. More... | |
bool | has_strict_fam_conversion (const diff *dif) |
Test if a diff node carries a change from class with a fake flexible data member into a class with a real fexible data member. More... | |
diff_category | has_var_harmful_local_change (const diff *d) |
Test if a diff node carries a harmful local change to a variable. More... | |
diff_category | has_var_harmful_local_change (const diff_sptr &d) |
Test if diff node carries a harmful local change to a variable. More... | |
bool | has_virtual_mem_fn_change (const function_decl_diff *diff) |
Test if the function_decl_diff node has a change involving virtual member functions. More... | |
bool | has_void_ptr_to_ptr_change (const diff *dif) |
Test if a diff node carries a void* to pointer type change. More... | |
bool | has_void_to_non_void_change (const diff *d) |
Test if a diff node carries a "void-to-non-void" type change. More... | |
bool | has_void_to_non_void_change (const diff_sptr &d) |
Test if a diff node carries a "void-to-non-void" type change. More... | |
bool | is_decl_only_class_with_size_change (const class_or_union &first, const class_or_union &second) |
Test if two classes that are decl-only (have the decl-only flag and carry no data members) but are different just by their size. More... | |
bool | is_decl_only_class_with_size_change (const class_or_union_sptr &first, const class_or_union_sptr &second) |
Test if two classes that are decl-only (have the decl-only flag and carry no data members) but are different just by their size. More... | |
bool | is_decl_only_class_with_size_change (const diff *diff) |
Test if a diff node is for two classes that are decl-only (have the decl-only flag and carry no data members) but are different just by their size. More... | |
bool | is_mostly_distinct_diff (const diff *d) |
Test if a diff node carries a distinct type change or a pointer/reference/typedef to distinct type change. More... | |
bool | is_var_1_dim_unknown_size_array_change (const diff *diff) |
Test if we are looking at a diff that carries a change of variables which types are both one dimension array, with one of them being of unknow size and the two variables having the same symbol size. More... | |
bool | is_var_1_dim_unknown_size_array_change (const var_decl_sptr &var1, const var_decl_sptr &var2) |
Test if we are looking at two variables which types are both one dimension array, with one of them being of unknow size and the two variables having the same symbol size. More... | |
bool | union_diff_has_harmless_changes (const diff *d) |
Test if a union diff node does have changes that don't impact its size. More... | |
This file contains definitions of diff objects filtering facilities.
Definition in file abg-comp-filter.cc.