libabigail
Classes | Namespaces | Typedefs | Functions
abg-comparison-priv.h File Reference

The private data and functions of the abigail::ir::comparison types. More...

#include "abg-internal.h"
#include <memory>
#include <unordered_set>
#include "abg-hash.h"
#include "abg-suppression.h"
#include "abg-comparison.h"
#include "abg-comp-filter.h"
#include "abg-sptr-utils.h"
#include "abg-tools-utils.h"
Include dependency graph for abg-comparison-priv.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  array_diff::priv
 
struct  base_diff::priv
 
struct  base_diff_comp
 A comparison function for instances of base_diff. More...
 
struct  base_spec_comp
 A functor to compare instances of class_decl::base_spec. More...
 
struct  changed_enumerator_comp
 A functor to compare two changed enumerators, based on their initial value. More...
 
struct  class_diff::priv
 The type of the private data (pimpl sub-object) of the class_diff type. More...
 
struct  class_or_union_diff::priv
 The type of private data of class_or_union_diff. More...
 
struct  corpus_diff::diff_stats::priv
 The type of the private data of corpus_diff::diff_stats. More...
 
struct  corpus_diff::priv
 
struct  data_member_comp
 A comparison functor to compare two data members based on their offset. More...
 
struct  data_member_diff_comp
 A comparison functor to compare two instances of var_diff that represent changed data members based on the offset of the initial data members, or if equal, based on their qualified name. If equal again, then the offset and qualified name of the new data members are considered. More...
 
struct  decl_diff_base::priv
 
struct  priv
 Private data for the diff type. The details of generic view of the diff node are expressed here. More...
 
struct  diff_comp
 A comparison functor for instances of diff. More...
 
struct  diff_context::priv
 The private member (pimpl) for diff_context. More...
 
struct  diff_equal
 A comparison functor for using diff_sptr and diff* in a hash map or set. More...
 
struct  diff_hash
 A hashing functor for using diff_sptr and diff* in a hash map or set. More...
 
struct  diff_less_than_functor
 A functor to compare two instances of diff_sptr. More...
 
struct  distinct_diff::priv
 The private data structure for distinct_diff. More...
 
struct  elf_symbol_comp
 A functor to compare instances of elf_symbol base on their names. More...
 
struct  enum_diff::priv
 
struct  enumerator_value_comp
 A functor to compare two enumerators based on their value. This implements the "less than" operator. More...
 
struct  fn_parm_diff::priv
 
struct  fn_parm_diff_comp
 A comparison functor to compare two instances of fn_parm_diff based on their indexes. More...
 
struct  function_comp
 "Less than" functor to compare instances of function_decl. More...
 
struct  function_decl_diff::priv
 
struct  function_decl_diff_comp
 A "Less Than" functor to compare instance of function_decl_diff. More...
 
struct  function_type_diff::priv
 
struct  parm_comp
 Functor that compares two function parameters for the purpose of sorting them. More...
 
struct  pointer_diff::priv
 The internal type for the impl idiom implementation of pointer_diff. More...
 
struct  ptr_to_mbr_diff::priv
 The private data of the ptr_to_mbr_diff type. More...
 
struct  qualified_type_diff::priv
 
struct  reference_diff::priv
 
struct  scope_diff::priv
 
struct  subrange_diff::priv
 The internal type for the impl idiom implementation of subrange_diff. More...
 
struct  translation_unit_diff::priv
 
struct  type_diff_base::priv
 
struct  typedef_diff::priv
 
struct  types_or_decls_equal
 An equality functor for types_or_decls_type. More...
 
struct  types_or_decls_hash
 A hashing functor for types_or_decls_type. More...
 
struct  var_comp
 A functor to compare instances of var_decl base on their qualified names. More...
 
struct  var_diff::priv
 The internal type for the impl idiom implementation of var_diff. More...
 
struct  var_diff_sptr_comp
 Functor to sort instances of var_diff_sptr. More...
 
struct  virtual_member_function_diff_comp
 A comparison functor for instances of function_decl_diff that represent changes between two virtual member functions. More...
 

Namespaces

 abigail
 Toplevel namespace for libabigail.
 
 abigail::comparison
 utilities to compare abi artifacts
 

Typedefs

typedef unordered_map< const diff *, artifact_sptr_set_type, diff_hash, diff_equaldiff_artifact_set_map_type
 A convenience typedef for an unordered_map which key is a diff* and which value is a artifact_sptr_set_type. More...
 
typedef unordered_map< types_or_decls_type, diff_sptr, types_or_decls_hash, types_or_decls_equaltypes_or_decls_diff_map_type
 A convenience typedef for a map of types_or_decls_type and diff_sptr. More...
 
typedef std::pair< const type_or_decl_base_sptr, const type_or_decl_base_sptr > types_or_decls_type
 Convenience typedef for a pair of decls or types. More...
 

Functions

diffget_fn_decl_or_var_decl_diff_ancestor (const diff *)
 
type_base_sptr get_leaf_type (qualified_type_def_sptr t)
 Return the first underlying type that is not a qualified type. More...
 
bool is_diff_of_global_decls (const diff *d)
 Tests if a given diff node is to represent the changes between two gobal decls. More...
 
bool is_less_than (const function_decl_diff &first, const function_decl_diff &second)
 Compare two function_decl_diff for the purpose of sorting. More...
 
void sort_artifacts_set (const artifact_sptr_set_type &set, vector< type_or_decl_base_sptr > &sorted)
 Sort the set of ABI artifacts contained in a artifact_sptr_set_type. More...
 
void sort_changed_data_members (changed_var_sptrs_type &to_sort)
 Sort (in place) a vector of changed data members. More...
 
void sort_changed_enumerators (const string_changed_enumerator_map &enumerators_map, changed_enumerators_type &sorted)
 Sort a map of changed enumerators. More...
 
void sort_data_members (const string_decl_base_sptr_map &data_members, vector< decl_base_sptr > &sorted)
 Sort a map of data members by the offset of their initial value. More...
 
void sort_enumerators (const string_enumerator_map &enumerators_map, enum_type_decl::enumerators &sorted)
 Sort a map of enumerators by their value. More...
 
void sort_string_base_diff_sptr_map (const string_base_diff_sptr_map &map, base_diff_sptrs_type &sorted)
 Sort a map of string -> base_diff_sptr into a sorted vector of base_diff_sptr. The base_diff_sptr are sorted by increasing value of their offset in their containing type. More...
 
void sort_string_base_sptr_map (const string_base_sptr_map &m, class_decl::base_specs &sorted)
 Lexicographically sort base specifications found in instances of string_base_sptr_map. More...
 
void sort_string_data_member_diff_sptr_map (const string_var_diff_sptr_map &map, var_diff_sptrs_type &sorted)
 Sort the values of a string_var_diff_sptr_map and store the result in a vector of var_diff_sptr. More...
 
void sort_string_diff_ptr_map (const string_diff_ptr_map &map, diff_ptrs_type &sorted)
 Sort a map ofg string -> diff* into a vector of diff_ptr. The diff_ptr are sorted lexicographically wrt qualified names of their first subjects. More...
 
void sort_string_diff_sptr_map (const string_diff_sptr_map &map, diff_sptrs_type &sorted)
 Sort a map ofg string -> diff_sptr into a vector of diff_sptr. The diff_sptr are sorted lexicographically wrt qualified names of their first subjects. More...
 
void sort_string_elf_symbol_map (const string_elf_symbol_map &map, vector< elf_symbol_sptr > &sorted)
 Sort a map of string -> pointer to elf_symbol. More...
 
void sort_string_fn_parm_diff_sptr_map (const string_fn_parm_diff_sptr_map &map, vector< fn_parm_diff_sptr > &sorted)
 Sort a map of changed function parameters by the indexes of the function parameters. More...
 
void sort_string_fn_parm_diff_sptr_map (const unsigned_fn_parm_diff_sptr_map &map, vector< fn_parm_diff_sptr > &sorted)
 Sort a map of fn_parm_diff by the indexes of the function parameters. More...
 
void sort_string_function_decl_diff_sptr_map (const string_function_decl_diff_sptr_map &map, function_decl_diff_sptrs_type &sorted)
 Sort the values of a string_function_decl_diff_sptr_map map and store the result in a vector of function_decl_diff_sptr objects. More...
 
void sort_string_function_ptr_map (const string_function_ptr_map &map, vector< const function_decl * > &sorted)
 Sort an instance of string_function_ptr_map map and stuff a resulting sorted vector of pointers to function_decl. More...
 
void sort_string_member_function_sptr_map (const string_member_function_sptr_map &map, class_or_union::member_functions &sorted)
 Sort a map that's an instance of string_member_function_sptr_map and fill a vector of member functions with the sorted result. More...
 
void sort_string_parm_map (const string_parm_map &map, vector< function_decl::parameter_sptr > &sorted)
 Sort a map of string -> function parameters. More...
 
void sort_string_type_base_sptr_map (string_type_base_sptr_map &map, vector< type_base_sptr > &sorted)
 Sort a map of string to type_base_sptr entities. More...
 
void sort_string_var_diff_sptr_map (const string_var_diff_sptr_map &map, var_diff_sptrs_type &sorted)
 Sort of an instance of string_var_diff_sptr_map map. More...
 
void sort_string_var_ptr_map (const string_var_ptr_map &map, vector< const var_decl * > &sorted)
 Sort a map of string -> pointer to var_decl. More...
 
void sort_string_virtual_member_function_diff_sptr_map (const string_function_decl_diff_sptr_map &map, function_decl_diff_sptrs_type &sorted)
 Sort an map of string -> virtual member function into a vector of virtual member functions. The virtual member functions are sorted by increasing order of their virtual index. More...
 
void sort_unsigned_data_member_diff_sptr_map (const unsigned_var_diff_sptr_map map, var_diff_sptrs_type &sorted)
 Sort the values of a unsigned_var_diff_sptr_map map and store the result into a vector of var_diff_sptr. More...
 

Detailed Description

The private data and functions of the abigail::ir::comparison types.

Interfaces declared/defined in this file are to be used by parts of libabigail but *NOT* by clients of libabigail.

Definition in file abg-comparison-priv.h.