libabigail
|
This contains the implementation of the suppression engine of libabigail. More...
#include <algorithm>
#include "abg-internal.h"
#include <memory>
#include <limits>
#include "abg-ini.h"
#include "abg-comp-filter.h"
#include "abg-suppression.h"
#include "abg-tools-utils.h"
#include "abg-fe-iface.h"
#include "abg-comparison.h"
#include "abg-suppression-priv.h"
Go to the source code of this file.
Namespaces | |
namespace | abigail |
Toplevel namespace for libabigail. | |
namespace | abigail::suppr |
an engine to suppress the parts of the result of comparing two sets of ABI artifacts. | |
Functions | |
bool | check_sufficient_props (const char *const *names, size_t count, const ini::config::section §ion) |
Check if a section has at least one of the given properties. More... | |
file_suppression_sptr | file_is_suppressed (const string &file_path, const suppressions_type &sprs) |
Test if a given file path is "suppressed" by at least one file suppression specification among a vector of suppression specifications. More... | |
const char * | get_opaque_types_suppr_spec_label () |
bool | is_data_member_offset_in_range (const var_decl_sptr &dm, const type_suppression::insertion_range_sptr &range, const class_or_union *context) |
Test if a data memer offset is in a given insertion range. More... | |
bool | is_elf_symbol_suppressed (const fe_iface &fe, const elf_symbol_sptr &symbol) |
Test if an ELF symbol is suppressed by at least one of the suppression specifications associated with a given front-end. More... | |
bool | is_elf_symbol_suppressed (const fe_iface &fe, const string &sym_name, elf_symbol::type sym_type) |
Test if an ELF symbol is suppressed by at least one of the suppression specifications associated with a given front-end. More... | |
file_suppression_sptr | is_file_suppression (const suppression_sptr s) |
Test if a given suppression specification is a file suppression specification. More... | |
type_suppression::insertion_range::fn_call_expr_boundary_sptr | is_fn_call_expr_boundary (type_suppression::insertion_range::boundary_sptr b) |
Tests if a given instance of type_suppression::insertion_range::boundary is actually a function call expression boundary. More... | |
bool | is_function_suppressed (const fe_iface &fe, const string &fn_name, const string &fn_linkage_name, bool require_drop_property) |
Test if a function is matched by at least one suppression specification associated with a given front-end. More... | |
function_suppression_sptr | is_function_suppression (const suppression_sptr suppr) |
Test if an instance of suppression is an instance of function_suppression. More... | |
type_suppression::insertion_range::integer_boundary_sptr | is_integer_boundary (type_suppression::insertion_range::boundary_sptr b) |
Tests if a given instance of type_suppression::insertion_range::boundary is actually an integer boundary. More... | |
type_suppression::insertion_range::named_boundary_sptr | is_named_boundary (type_suppression::insertion_range::boundary_sptr b) |
Test if a given instance of type_suppression::insertion_range::boundary is actually a named boundary. More... | |
bool | is_negated_suppression (const suppression_base &s) |
Test if a suppression specification is a negated suppression. More... | |
const negated_suppression_base * | is_negated_suppression (const suppression_base *s) |
Test if a suppression specification is a negated suppression. More... | |
negated_suppression_sptr | is_negated_suppression (const suppression_sptr &s) |
Test if a suppression specification is a negated suppression. More... | |
bool | is_opaque_type_suppr_spec (const suppression_sptr &s) |
Test if a type suppression specification represents a private type suppression automatically generated by libabigail from the user telling us where public headers are. More... | |
bool | is_opaque_type_suppr_spec (const type_suppression &s) |
Test if a type suppression specification represents a private type suppression automatically generated by libabigail from the user telling us where public headers are. More... | |
bool | is_type_suppressed (const fe_iface &fe, const string &type_name, const location &type_location, bool &type_is_opaque, bool require_drop_property) |
Test if a type is matched by at least one suppression specification associated with a given front-end. More... | |
type_suppression_sptr | is_type_suppression (suppression_sptr suppr) |
Test if an instance of suppression is an instance of type_suppression. More... | |
bool | is_variable_suppressed (const fe_iface &fe, const string &var_name, const string &var_linkage_name, bool require_drop_property) |
Test if a variable is matched by at least one suppression specification associated with a given front-end. More... | |
variable_suppression_sptr | is_variable_suppression (const suppression_sptr s) |
Test if an instance of suppression is an instance of variable_suppression. More... | |
function_suppression::change_kind | operator& (function_suppression::change_kind l, function_suppression::change_kind r) |
The bitwise 'and' operator for the enum function_suppression::change_kind. More... | |
variable_suppression::change_kind | operator& (variable_suppression::change_kind l, variable_suppression::change_kind r) |
The bitwise 'and' operator for the enum variable_suppression::change_kind. More... | |
function_suppression::change_kind | operator| (function_suppression::change_kind l, function_suppression::change_kind r) |
The bitwise 'or' operator for the enum function_suppression::change_kind. More... | |
variable_suppression::change_kind | operator| (variable_suppression::change_kind l, variable_suppression::change_kind r) |
The bitwise 'or' operator for the enum variable_suppression::change_kind. More... | |
void | read_suppressions (const string &file_path, suppressions_type &suppressions) |
Read suppressions specifications from an input file on disk. More... | |
void | read_suppressions (std::istream &input, suppressions_type &suppressions) |
Read suppressions specifications from an input stream. More... | |
bool | suppression_can_match (const fe_iface &fe, const suppression_base &s) |
Test if a given suppression specification can match an ABI artifact coming from the corpus being analyzed by a given front-end interface. More... | |
bool | suppression_matches_function_name (const fe_iface &fe, const suppr::function_suppression &s, const string &fn_name) |
Test if a given function is suppressed by a suppression specification. More... | |
bool | suppression_matches_function_sym_name (const fe_iface &fe, const suppr::function_suppression &s, const string &fn_linkage_name) |
Test if a given function is suppressed by a suppression specification. More... | |
bool | suppression_matches_soname (const string &soname, const suppression_base &suppr) |
Test if a given SONAME is matched by a given suppression specification. More... | |
bool | suppression_matches_soname_or_filename (const string &soname, const string &filename, const suppression_base &suppr) |
Test if a given SONAME or file name is matched by a given suppression specification. More... | |
bool | suppression_matches_type (const suppr::type_suppression &s, const string &type_name) |
Test if a type suppression matches a type designated by its fully qualified name. More... | |
bool | suppression_matches_type_location (const type_suppression &s, const location &loc) |
Test if a type suppression matches a source location. More... | |
bool | suppression_matches_type_location (const type_suppression &s, const type_base_sptr &type) |
Test if a type suppression matches a type. More... | |
bool | suppression_matches_type_name (const suppr::type_suppression &s, const scope_decl *type_scope, const type_base_sptr &type) |
Test if a type suppression matches a type in a particular scope. More... | |
bool | suppression_matches_type_name (const type_suppression &s, const string &type_name) |
Test if a type suppression specification matches a type name. More... | |
bool | suppression_matches_type_name_or_location (const fe_iface &fe, const suppr::type_suppression &s, const string &type_name, const location &type_location) |
Test if a suppression specification matches a type designated by its name and source location, in the context of a given front-end. More... | |
bool | suppression_matches_type_name_or_location (const type_suppression &s, const string &type_name, const location &type_location) |
Test if a type suppression matches a type name and location. More... | |
bool | suppression_matches_variable_name (const fe_iface &fe, const suppr::variable_suppression &s, const string &var_name) |
Test if a suppression specification matches a variable of a given name, in the context of a given front-end. More... | |
bool | suppression_matches_variable_name (const suppr::variable_suppression &s, const string &var_name) |
Test if a variable suppression matches a variable denoted by its name. More... | |
bool | suppression_matches_variable_sym_name (const fe_iface &fe, const suppr::variable_suppression &s, const string &var_linkage_name) |
Test if a suppression specification matches a variable which ELF symbol has a given name, in the context of a given front-end. More... | |
bool | suppression_matches_variable_sym_name (const suppr::variable_suppression &s, const string &var_linkage_name) |
Test if a variable suppression matches a variable denoted by its symbol name. More... | |
bool | variable_is_suppressed (const suppr::suppressions_type &supprs, const string &var_name, const string &var_linkage_name, bool require_drop_property) |
Test if a given variable is suppressed by at least one suppression specification among a vector of suppression specifications. More... | |
This contains the implementation of the suppression engine of libabigail.
Definition in file abg-suppression.cc.