libabigail

An abstraction of a diff between entities that are of a different kind (disctinct). More...
#include <abgcomparison.h>
Classes  
struct  priv 
The private data structure for distinct_diff. More...  
Public Member Functions  
virtual void  chain_into_hierarchy () 
Populate the vector of children node of the diff base type subobject of this instance of @distinct_diff. More...  
const diff_sptr  compatible_child_diff () const 
Getter for the child diff of this distinct_diff instance. More...  
const type_or_decl_base_sptr  first () const 
Getter for the first subject of the diff. More...  
virtual const string &  get_pretty_representation () const 
virtual bool  has_changes () const 
virtual enum change_kind  has_local_changes () const 
virtual void  report (ostream &out, const string &indent="") const 
Emit a report about the current diff instance. More...  
const type_or_decl_base_sptr  second () const 
Getter for the second subject of the diff. More...  
Public Member Functions inherited from diff  
diff_category  add_to_category (diff_category c) 
Adds the current diff tree node to an additional set of categories. Note that the categories include thoses inherited from the children nodes of this diff node. More...  
void  add_to_local_and_inherited_categories (diff_category c) 
Adds the current diff tree node to the categories resulting from the local and inherited changes of the current diff node. More...  
diff_category  add_to_local_category (diff_category c) 
Adds the current diff tree node to the categories resulting from the local changes of the current diff node. More...  
void  append_child_node (diff_sptr) 
Add a new child node to the vector of children nodes for the current diff node. More...  
const vector< diff * > &  children_nodes () const 
Getter for the children nodes of the current diff node. More...  
const diff_context_sptr  context () const 
Getter of the context of the current diff. More...  
void  context (diff_context_sptr c) 
Setter of the context of the current diff. More...  
bool  currently_reporting () const 
Tests if we are currently in the middle of emitting a report for this diff. More...  
void  currently_reporting (bool f) const 
Sets a flag saying if we are currently in the middle of emitting a report for this diff. More...  
type_or_decl_base_sptr  first_subject () const 
Getter of the first subject of the diff. More...  
diff *  get_canonical_diff () const 
Getter for the canonical diff of the current instance of diff. More...  
diff_category  get_category () const 
Getter for the category of the current diff tree node. More...  
diff_category  get_class_of_equiv_category () const 
Getter of the category of the class of equivalence of the current diff tree node. More...  
diff_category  get_local_category () const 
Getter for the local category of the current diff tree node. More...  
bool  has_descendant_allowed_by_specific_negated_suppression () const 
Test if the current diff node has a descendant node which is specifically allowed by a negated suppression specification. More...  
bool  has_local_changes_to_be_reported () const 
Test if this diff tree node should be reported when considering the categories that were *NOT* inherited from its children nodes. More...  
bool  has_parent_allowed_by_specific_negated_suppression () const 
Test if the current diff node has a parent node which is specifically allowed by a negated suppression specification. More...  
bool  is_allowed_by_specific_negated_suppression () const 
Test if this diff node is allowed (prevented from being suppressed) by at least one negated suppression specification. More...  
bool  is_filtered_out () const 
Test if this diff tree node is to be filtered out for reporting purposes. More...  
bool  is_filtered_out_without_looking_at_allowed_changes () const 
Test if this diff tree node is to be filtered out for reporting purposes, but without considering the categories that can /force/ the node to be unfiltered. More...  
bool  is_filtered_out_wrt_non_inherited_categories () const 
Test if this diff tree node is to be filtered out for reporting purposes, but by considering only the categories that were *NOT* inherited from its children nodes. More...  
bool  is_suppressed () const 
Test if the current diff node has been suppressed by a userprovided suppression specification. More...  
bool  is_suppressed (bool &is_private_type) const 
Test if the current diff node has been suppressed by a userprovided suppression specification or by an autogenerated "private type" suppression specification. More...  
bool  is_traversing () const 
Tell if a given node is being traversed or not. More...  
const diff *  parent_node () const 
Getter for the parent node of the current diff node. More...  
diff_category  remove_from_category (diff_category c) 
Remove the current diff tree node from an a existing sef of categories. The categories include those inherited from the children nodes of the current diff node. More...  
diff_category  remove_from_local_category (diff_category c) 
Remove the current diff tree node from the categories resulting from the local changes. More...  
bool  reported_once () const 
Tests if a report has already been emitted for the current diff. More...  
void  reported_once (bool f) const 
Sets a flag saying if a report has already been emitted for the current diff. More...  
type_or_decl_base_sptr  second_subject () const 
Getter of the second subject of the diff. More...  
void  set_category (diff_category c) 
Set the category of the current diff node. This category includes the categories inherited from the children nodes of the current diff node. More...  
void  set_local_category (diff_category c) 
Set the local category of the current diff node. More...  
bool  to_be_reported () const 
Test if this diff tree node should be reported. More...  
virtual bool  traverse (diff_node_visitor &v) 
The generic traversing code that walks a given diff subtree. More...  
Public Member Functions inherited from traversable_base  
virtual  ~traversable_base () 
Destructor of the traversable_base type. More...  
Static Public Member Functions  
static bool  entities_are_of_distinct_kinds (type_or_decl_base_sptr first, type_or_decl_base_sptr second) 
Test if the two arguments are of different kind, or that are both NULL. More...  
Protected Member Functions  
distinct_diff (type_or_decl_base_sptr first, type_or_decl_base_sptr second, diff_context_sptr ctxt=diff_context_sptr())  
Constructor for distinct_diff. More...  
Protected Member Functions inherited from diff  
diff (type_or_decl_base_sptr first_subject, type_or_decl_base_sptr second_subject)  
Constructor for the diff type. More...  
diff (type_or_decl_base_sptr first_subject, type_or_decl_base_sptr second_subject, diff_context_sptr ctxt)  
Constructor for the diff type. More...  
void  begin_traversing () 
Flag a given diff node as being traversed. More...  
bool  do_log () const 
Test if logging was requested. More...  
void  do_log (bool) 
Request logging (or not) More...  
void  end_traversing () 
Flag a given diff node as not being traversed anymore. More...  
virtual void  finish_diff_type () 
Finish the insertion of a diff tree node into the diff graph. More...  
void  set_canonical_diff (diff *) 
Setter for the canonical diff of the current instance of diff. More...  
Protected Member Functions inherited from traversable_base  
traversable_base ()  
Default constructor of the traversable_base type. More...  
bool  visiting () const 
This should returns false before and after the node has been visiting. During the visiting of the node (and of its children) this should return true. More...  
void  visiting (bool f) 
The traversing code should be responsible of calling this, not the user code. More...  
Friends  
distinct_diff_sptr  compute_diff_for_distinct_kinds (const type_or_decl_base_sptr first, const type_or_decl_base_sptr second, diff_context_sptr ctxt) 
Try to diff entities that are of distinct kinds. More...  
Additional Inherited Members  
Protected Attributes inherited from diff  
std::unique_ptr< priv >  priv_ 
An abstraction of a diff between entities that are of a different kind (disctinct).
Definition at line 1208 of file abgcomparison.h.

protected 
Constructor for distinct_diff.
Note that the two entities considered for the diff (and passed in parameter) must be of different kinds.
first  the first entity to consider for the diff. 
second  the second entity to consider for the diff. 
ctxt  the context of the diff. Note that this context object must stay alive at least during the life time of the current instance of distinct_diff. Otherwise memory corruption issues occur. 
Definition at line 2785 of file abgcomparison.cc.

virtual 
Populate the vector of children node of the diff base type subobject of this instance of @distinct_diff.
The children nodes can then later be retrieved using diff::children_nodes().
Reimplemented from diff.
Definition at line 2764 of file abgcomparison.cc.
const diff_sptr compatible_child_diff  (  )  const 
Getter for the child diff of this distinct_diff instance.
When a distinct_diff has two subjects that are different but compatible, then the distinct_diff instance has a child diff node (named the compatible child diff) that is the diff between the two subjects stripped from their typedefs. Otherwise, the compatible child diff is nul.
Note that two diff subjects (that compare different) are considered compatible if stripping typedefs out of them makes them comparing equal.
Definition at line 2820 of file abgcomparison.cc.

static 
Test if the two arguments are of different kind, or that are both NULL.
first  the first argument to test for similarity in kind. 
second  the second argument to test for similarity in kind. 
Definition at line 2846 of file abgcomparison.cc.
const type_or_decl_base_sptr first  (  )  const 
Getter for the first subject of the diff.
Definition at line 2796 of file abgcomparison.cc.

virtual 
Reimplemented from diff.
Definition at line 2737 of file abgcomparison.cc.

virtual 
Implements diff.
Definition at line 2865 of file abgcomparison.cc.

virtual 
Implements diff.
Definition at line 2865 of file abgcomparison.cc.

virtual 
Emit a report about the current diff instance.
out  the output stream to send the diff report to. 
indent  the indentation string to use in the report. 
Implements diff.
Definition at line 2886 of file abgcomparison.cc.
const type_or_decl_base_sptr second  (  )  const 
Getter for the second subject of the diff.
Definition at line 2803 of file abgcomparison.cc.

friend 
Try to diff entities that are of distinct kinds.
first  the first entity to consider for the diff. 
second  the second entity to consider for the diff. 
ctxt  the context of the diff. 
Definition at line 2902 of file abgcomparison.cc.