libabigail
Namespaces | Functions
abg-suppression.cc File Reference

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"
Include dependency graph for abg-suppression.cc:

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 &section)
 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...
 

Detailed Description

This contains the implementation of the suppression engine of libabigail.

Definition in file abg-suppression.cc.