libabigail
Public Member Functions | List of all members
negated_type_suppression Class Reference

Abstraction of a negated type suppression specification. More...

#include <abg-suppression.h>

Inheritance diagram for negated_type_suppression:
[legend]

Public Member Functions

 negated_type_suppression (const string &label, const string &type_name_regexp, const string &type_name)
 Constructor for negated_type_suppression. More...
 
virtual ~negated_type_suppression ()
 Destructor of the negated_type_suppression type. More...
 
virtual bool suppresses_diff (const diff *diff) const
 Evaluate this suppression specification on a given diff node and say if the diff node should be suppressed or not. More...
 
bool suppresses_type (const type_base_sptr &type) const
 
bool suppresses_type (const type_base_sptr &type, const diff_context_sptr &ctxt) const
 
bool suppresses_type (const type_base_sptr &type, const scope_decl *type_scope) const
 
- Public Member Functions inherited from type_suppression
 type_suppression (const string &label, const string &type_name_regexp, const string &type_name)
 Constructor for type_suppression. More...
 
const vector< string > & get_changed_enumerator_names () const
 Getter of the vector of the changed enumerators that are supposed to be suppressed. Note that this will be "valid" only if the type suppression has the 'type_kind = enum' property. More...
 
bool get_consider_reach_kind () const
 Test if the current type suppression specification suggests to consider how the matching diff node is reached. More...
 
bool get_consider_type_kind () const
 Getter of the property that says whether to consider the kind of type this suppression is about. More...
 
insertion_rangesget_data_member_insertion_ranges ()
 Getter for the vector of data member insertion range that specifiers where a data member is inserted as far as this suppression specification is concerned. More...
 
const insertion_rangesget_data_member_insertion_ranges () const
 Getter for the vector of data member insertion range that specifiers where a data member is inserted as far as this suppression specification is concerned. More...
 
bool get_has_size_change () const
 Getter of the "has_size_change" property. More...
 
const string_set_type & get_potential_data_member_names () const
 Getter of the "potential_data_member_names" property. More...
 
const string & get_potential_data_member_names_regex_str () const
 Getter of the "potential_data_member_names_regex" string. More...
 
reach_kind get_reach_kind () const
 Getter of the way the diff node matching the current suppression specification is to be reached. More...
 
const string & get_source_location_to_keep_regex_str () const
 Getter of the regular expression string that designates the source location paths of types that should not be suppressed. More...
 
unordered_set< string > & get_source_locations_to_keep ()
 Getter for the array of source location paths of types that should *NOT* be suppressed. More...
 
const unordered_set< string > & get_source_locations_to_keep () const
 Getter for the array of source location paths of types that should *NOT* be suppressed. More...
 
type_kind get_type_kind () const
 Getter of the kind of type this suppression is about. More...
 
const string & get_type_name () const
 Getter for the name of the type about which diff reports should be suppressed. More...
 
const string & get_type_name_not_regex_str () const
 Getter for the "type_name_not_regex_str" property of the type suppression specification. More...
 
const string & get_type_name_regex_str () const
 Getter for the "type_name_regex" property of the type suppression specification. More...
 
void set_changed_enumerator_names (const vector< string > &)
 Setter of the vector of changed enumerators that are supposed to be suppressed. Note that this will be "valid" only if the type suppression has the 'type_kind = enum' property. More...
 
void set_consider_reach_kind (bool f)
 Set a flag saying if the current type suppression specification suggests to consider how the matching diff node is reached. More...
 
void set_consider_type_kind (bool f)
 Setter of the property that says whether to consider the kind of type this suppression is about. More...
 
void set_data_member_insertion_ranges (const insertion_ranges &r)
 Setter for the vector of data member insertion ranges that specifies where a data member is inserted as far as this suppression specification is concerned. More...
 
void set_has_size_change (bool flag)
 Setter of the "has_size_change" property. More...
 
void set_potential_data_member_names (const string_set_type &) const
 Setter of the "potential_data_member_names" property. More...
 
void set_potential_data_member_names_regex_str (const string &) const
 Setter of the "potential_data_member_names_regex" string. More...
 
void set_reach_kind (reach_kind k)
 Setter of the way the diff node matching the current suppression specification is to be reached. More...
 
void set_source_location_to_keep_regex_str (const string &)
 Setter of the regular expression string that designates the source location paths of types that should not be suppressed. More...
 
void set_source_locations_to_keep (const unordered_set< string > &)
 Setter for the array of source location paths of types that should *NOT* be suppressed. More...
 
void set_type_kind (type_kind k)
 Setter of the kind of type this suppression is about. More...
 
void set_type_name (const string &name)
 Setter for the name of the type about which diff reports should be suppressed. More...
 
void set_type_name_not_regex_str (const string &name_regex_str)
 Setter for the "type_name_not_regex_str" property of the type suppression specification. More...
 
void set_type_name_regex_str (const string &name_regex_str)
 Setter for the "type_name_regex" property of the type suppression specification. More...
 
bool suppresses_type (const type_base_sptr &type) const
 Test if the current instance of type_suppression matches a given type. More...
 
bool suppresses_type (const type_base_sptr &type, const diff_context_sptr &ctxt) const
 Test if the current instance of type_suppression suppresses a change reports about a given type. More...
 
bool suppresses_type (const type_base_sptr &type, const scope_decl *type_scope) const
 Test if the current instance of type_suppression matches a given type in a given scope. More...
 
- Public Member Functions inherited from suppression_base
 suppression_base (const string &label)
 Constructor for suppression_base. More...
 
 suppression_base (const string &label, const string &file_name_regex_str, const string &file_name_not_regex_str)
 Constructor for suppression_base. More...
 
bool get_drops_artifact_from_ir () const
 Tests if the current suppression specification is to avoid adding the matched ABI artifact to the internal representation or not. More...
 
const string & get_file_name_not_regex_str () const
 Getter for the "file_name_not_regex" property of the current instance of suppression_base. More...
 
const string & get_file_name_regex_str () const
 Getter for the "file_name_regex" property of the current instance of suppression_base. More...
 
bool get_is_artificial () const
 Test is the suppression specification is artificial. More...
 
const string get_label () const
 Getter for the label associated to this suppression specification. More...
 
const string & get_soname_not_regex_str () const
 Getter of the "soname_not_regex_str property of the current instance of suppression_base. More...
 
const string & get_soname_regex_str () const
 Getter of the "soname_regex_str property of the current instance of suppression_base. More...
 
bool has_file_name_related_property () const
 Test if the current suppression has a property related to file name. More...
 
bool has_soname_related_property () const
 Test if the current suppression has a property related to SONAMEs. More...
 
void set_drops_artifact_from_ir (bool)
 Set the flag that says whether the current suppression specification is to avoid adding the matched ABI artifact to the internal representation or not. More...
 
void set_file_name_not_regex_str (const string &regexp)
 Setter for the "file_name_not_regex" property of the current instance of suppression_base. More...
 
void set_file_name_regex_str (const string &regexp)
 Setter for the "file_name_regex" property of the current instance of suppression_base. More...
 
void set_is_artificial (bool)
 Set a flag saying if the suppression specification is artificial or not. More...
 
void set_label (const string &)
 Setter for the label associated to this suppression specification. More...
 
void set_soname_not_regex_str (const string &regexp)
 Setter of the "soname_not_regex_str property of the current instance of suppression_base. More...
 
void set_soname_regex_str (const string &regexp)
 Setter of the "soname_regex_str property of the current instance of suppression_base. More...
 
- Public Member Functions inherited from negated_suppression_base
 negated_suppression_base ()
 Constructor of the negated_suppression_base. More...
 
virtual ~negated_suppression_base ()
 Destructor of the negated_suppression_base. More...
 

Additional Inherited Members

- Public Types inherited from type_suppression
typedef shared_ptr< insertion_rangeinsertion_range_sptr
 A convenience typedef for a shared pointer to insertion_range. More...
 
typedef vector< insertion_range_sptrinsertion_ranges
 A convenience typedef for a vector of insertion_range_sptr. More...
 
enum  reach_kind { DIRECT_REACH_KIND , POINTER_REACH_KIND , REFERENCE_REACH_KIND , REFERENCE_OR_POINTER_REACH_KIND }
 The different ways through which the type diff has been reached. More...
 
enum  type_kind {
  UNKNOWN_TYPE_KIND , CLASS_TYPE_KIND , STRUCT_TYPE_KIND , UNION_TYPE_KIND ,
  ENUM_TYPE_KIND , ARRAY_TYPE_KIND , TYPEDEF_TYPE_KIND , BUILTIN_TYPE_KIND
}
 The kind of the type the current type suppression is supposed to be about. More...
 
- Public Attributes inherited from type_suppression
std::unique_ptr< privpriv_
 
- Public Attributes inherited from suppression_base
std::unique_ptr< privpriv_
 

Detailed Description

Abstraction of a negated type suppression specification.

A negated type suppression suppresses a type if the negation of the equivalent propositions for a type_suppression are valid.

Definition at line 459 of file abg-suppression.h.

Constructor & Destructor Documentation

◆ negated_type_suppression()

negated_type_suppression ( const string &  label,
const string &  type_name_regexp,
const string &  type_name 
)

Constructor for negated_type_suppression.

Parameters
labelthe label of the suppression. This is just a free form comment explaining what the suppression is about.
type_name_regexpthe regular expression describing the types about which diff reports should be suppressed. If it's an empty string, the parameter is ignored.
type_namethe name of the type about which diff reports should be suppressed. If it's an empty string, the parameter is ignored.

Note that parameter type_name_regexp and type_name_regexp should not necessarily be populated. It usually is either one or the other that the user wants.

Definition at line 1701 of file abg-suppression.cc.

◆ ~negated_type_suppression()

Destructor of the negated_type_suppression type.

Definition at line 1723 of file abg-suppression.cc.

Member Function Documentation

◆ suppresses_diff()

bool suppresses_diff ( const diff diff) const
virtual

Evaluate this suppression specification on a given diff node and say if the diff node should be suppressed or not.

Parameters
diffthe diff node to evaluate this suppression specification against.
Returns
true if diff should be suppressed.

Reimplemented from type_suppression.

Definition at line 1717 of file abg-suppression.cc.


The documentation for this class was generated from the following files: