libabigail
|
Types of the main internal representation of libabigail. More...
#include <assert.h>
#include <stdint.h>
#include <cstdlib>
#include <functional>
#include <set>
#include <unordered_map>
#include "abg-cxx-compat.h"
#include "abg-fwd.h"
#include "abg-traverse.h"
#include "abg-config.h"
Go to the source code of this file.
Classes | |
class | array_type_def |
The abstraction of an array type. More... | |
class | array_type_def::subrange_type |
Abstraction for an array range type, like in Ada, or just for an array dimension like in C or C++. More... | |
class | array_type_def::subrange_type::bound_value |
This class is to hold the value of the bound of a subrange. The value can be either signed or unsigned, at least when it comes from DWARF. The class keeps the sign information, but allows users to access the value as signed or unsigned as they see fit. More... | |
struct | canonical_type_hash |
Functor to hash a canonical type by using its pointer value. More... | |
class | class_decl |
Abstracts a class declaration. More... | |
class | class_decl::base_spec |
Abstraction of a base specifier in a class declaration. More... | |
class | class_or_union |
The base type of class_decl and union_decl. More... | |
class | class_tdecl |
Abstract a class template. More... | |
class | context_rel |
The abstraction of the relationship between an entity and its containing scope (its context). That relationship can carry properties like access rights (if the parent is a class_decl), etc. More... | |
class | decl_base |
The base type of all declarations. More... | |
class | dm_context_rel |
The abstraction for a data member context relationship. This relates a data member to its parent class. More... | |
class | elf_symbol |
Abstraction of an elf symbol. More... | |
class | elf_symbol::version |
The abstraction of the version of an ELF symbol. More... | |
class | enum_type_decl |
Abstracts a declaration for an enum type. More... | |
class | enum_type_decl::enumerator |
The abstraction of an enumerator. More... | |
class | environment |
This is an abstraction of the set of resources necessary to manage several aspects of the internal representations of the Abigail library. More... | |
class | function_decl |
Abstraction for a function declaration. More... | |
class | function_decl::parameter |
Abstraction of a function parameter. More... | |
struct | function_decl::ptr_equal |
Equality functor for instances of function_decl. More... | |
class | function_tdecl |
Abstract a function template declaration. More... | |
class | function_type |
Abstraction of a function type. More... | |
class | global_scope |
This abstracts the global scope of a given translation unit. More... | |
class | ir_node_visitor |
The base class for the visitor type hierarchy used for traversing a translation unit. More... | |
struct | ir_traversable_base |
The base of an entity of the intermediate representation that is to be traversed. More... | |
class | location |
The source location of a token. More... | |
class | location_manager |
The entry point to manage locations. More... | |
class | mem_fn_context_rel |
Abstraction of a member function context relationship. This relates a member function to its parent class. More... | |
class | member_base |
The base class for member types, data members and member functions. Its purpose is mainly to carry the access specifier (and possibly other properties that might be shared by all class members) for the member. More... | |
class | member_class_template |
Abstracts a member class template template. More... | |
class | member_function_template |
Abstract a member function template. More... | |
class | method_decl |
Abstraction of the declaration of a method. More... | |
class | method_type |
Abstracts the type of a class member function. More... | |
class | namespace_decl |
The abstraction of a namespace declaration. More... | |
class | non_type_tparameter |
Abstracts non type template parameters. More... | |
class | pointer_type_def |
The abstraction of a pointer type. More... | |
class | ptr_to_mbr_type |
The abstraction of a pointer-to-member type. More... | |
class | qualified_type_def |
The abstraction of a qualified type. More... | |
class | reference_type_def |
Abstracts a reference type. More... | |
class | scope_decl |
A declaration that introduces a scope. More... | |
class | scope_type_decl |
A type that introduces a scope. More... | |
struct | shared_translation_unit_comp |
A comparison functor to compare translation units based on their absolute paths. More... | |
class | template_decl |
The base class of templates. More... | |
class | template_parameter |
Base class for a template parameter. Client code should use the more specialized type_template_parameter, non_type_template_parameter and template_template_parameter below. More... | |
class | template_tparameter |
Abstracts a template template parameter. More... | |
class | translation_unit |
This is the abstraction of the set of relevant artefacts (types, variable declarations, functions, templates, etc) bundled together into a translation unit. More... | |
class | type_base |
An abstraction helper for type declarations. More... | |
class | type_composition |
This abstracts a composition of types based on template type parameters. The result of the composition is a type that can be referred to by a template non-type parameter. Instances of this type can appear at the same level as template parameters, in the scope of a template_decl. More... | |
class | type_decl |
A basic type declaration that introduces no scope. More... | |
class | type_maps |
This is a type that aggregates maps of all the kinds of types that are supported by libabigail. More... | |
class | type_or_decl_base |
The base class of both types and declarations. More... | |
struct | type_or_decl_base_comp |
A comparison functor to compare pointer to instances of type_or_decl_base. More... | |
struct | type_or_decl_equal |
The comparison functor for using instances of type_or_decl_base as values in a hash map or set. More... | |
struct | type_or_decl_hash |
The hashing functor for using instances of type_or_decl_base as values in a hash map or set. More... | |
struct | type_ptr_equal |
A predicate for deep equality of instances of type_base*. More... | |
struct | type_shared_ptr_equal |
A predicate for deep equality of instances of shared_ptr<type_base> More... | |
class | type_tparameter |
Abstracts a type template parameter. More... | |
class | typedef_decl |
The abstraction of a typedef declaration. More... | |
class | union_decl |
Abstracts a union type declaration. More... | |
class | var_decl |
Abstracts a variable declaration. More... | |
struct | var_decl::ptr_equal |
A comparison functor for pointers to var_decl. More... | |
Namespaces | |
namespace | abigail |
Toplevel namespace for libabigail. | |
namespace | abigail::ir |
The namespace of the internal representation of ABI artifacts like types and decls. | |
Typedefs | |
typedef unordered_set< const type_or_decl_base *, type_or_decl_hash, type_or_decl_equal > | artifact_ptr_set_type |
A convenience typedef for a hash set of const type_or_decl_base*. More... | |
typedef unordered_set< type_or_decl_base_sptr, type_or_decl_hash, type_or_decl_equal > | artifact_sptr_set_type |
A convenience typedef for a hash set of type_or_decl_base_sptr. More... | |
typedef unordered_set< type_base_sptr, canonical_type_hash > | canonical_type_sptr_set_type |
Helper typedef for an unordered set of type_base_sptr which uses pointer value to tell its members appart, because the members are canonical types. More... | |
typedef shared_ptr< context_rel > | context_rel_sptr |
A convenience typedef for shared pointers to context_rel. More... | |
typedef shared_ptr< elf_symbol > | elf_symbol_sptr |
A convenience typedef for a shared pointer to elf_symbol. More... | |
typedef weak_ptr< elf_symbol > | elf_symbol_wptr |
A convenience typedef for a weak pointer to elf_symbol. More... | |
typedef std::vector< elf_symbol_sptr > | elf_symbols |
Convenience typedef for a vector of elf_symbol. More... | |
typedef abg_compat::optional< uint64_t > | hash_t |
The abstraction for an 8 bytes hash value. More... | |
typedef unordered_map< interned_string, const function_decl *, hash_interned_string > | istring_function_decl_ptr_map_type |
typedef unordered_map< interned_string, type_base_wptr, hash_interned_string > | istring_type_base_wptr_map_type |
A convenience typedef for a map which key is an interned_string and which value is a type_base_wptr. More... | |
typedef unordered_map< interned_string, type_or_decl_base_sptr, hash_interned_string > | istring_type_or_decl_base_sptr_map_type |
A convenience typedef for a map which key is an interned_string and which value is a type_base_wptr. More... | |
typedef unordered_map< interned_string, var_decl_sptr, hash_interned_string > | istring_var_decl_ptr_map_type |
typedef vector< namespace_decl_sptr > | namespaces_type |
A convenience typedef for vectors of namespace_decl_sptr. More... | |
typedef unordered_set< uintptr_t > | pointer_set |
A convenience typedef for an unordered set of pointer values. More... | |
typedef shared_ptr< string_elf_symbol_sptr_map_type > | string_elf_symbol_sptr_map_sptr |
Convenience typedef for a shared pointer to an string_elf_symbol_sptr_map_type. More... | |
typedef std::unordered_map< string, elf_symbol_sptr > | string_elf_symbol_sptr_map_type |
Convenience typedef for a map which key is a string and which value if the elf symbol of the same name. More... | |
typedef shared_ptr< string_elf_symbols_map_type > | string_elf_symbols_map_sptr |
Convenience typedef for a shared pointer to string_elf_symbols_map_type. More... | |
typedef std::unordered_map< string, elf_symbols > | string_elf_symbols_map_type |
Convenience typedef for a map which key is a string and which value is a vector of elf_symbol. More... | |
typedef unordered_map< string, type_base_sptr > | string_type_base_sptr_map_type |
A convenience typedef for a map which key is a string and which value is a type_base_sptr. More... | |
typedef unordered_map< string, type_base_wptr > | string_type_base_wptr_map_type |
A convenience typedef for a map which key is a string and which value is a type_base_wptr. More... | |
typedef std::set< translation_unit_sptr, shared_translation_unit_comp > | translation_units |
Convenience typedef for an ordered set of translation_unit_sptr. More... | |
typedef vector< type_base * > | type_base_ptrs_type |
Helper typedef for a vector of pointer to type_base. More... | |
typedef vector< type_base_sptr > | type_base_sptrs_type |
Helper typedef for a vector of shared pointer to a type_base. More... | |
Enumerations | |
enum | access_specifier { no_access , public_access , protected_access , private_access } |
Access specifier for class members. More... | |
enum | change_kind { NO_CHANGE_KIND , LOCAL_TYPE_CHANGE_KIND , LOCAL_NON_TYPE_CHANGE_KIND , ALL_LOCAL_CHANGES_MASK , SUBTYPE_CHANGE_KIND } |
A bitfield that gives callers of abigail::ir::equals() some insight about how different two internal representation artifacts are. More... | |
Functions | |
void | compute_aliases_for_elf_symbol (const elf_symbol &sym, const string_elf_symbols_map_type &symtab, vector< elf_symbol_sptr > &aliases) |
method_decl_sptr | copy_member_function (const class_decl_sptr &clazz, const method_decl *f) |
Copy a method of a class into a new class. More... | |
method_decl_sptr | copy_member_function (const class_decl_sptr &clazz, const method_decl_sptr &f) |
Copy a method of a class into a new class. More... | |
method_decl_sptr | copy_member_function (const class_or_union_sptr &t, const method_decl *method) |
Copy a method of a class_or_union into a new class_or_union. More... | |
method_decl_sptr | copy_member_function (const class_or_union_sptr &t, const method_decl_sptr &method) |
Copy a method of a class_or_union into a new class_or_union. More... | |
method_decl_sptr | copy_member_function (const union_decl_sptr &union_type, const method_decl *f) |
Copy a method of a union_decl into a new union_decl. More... | |
method_decl_sptr | copy_member_function (const union_decl_sptr &union_type, const method_decl_sptr &f) |
Copy a method of a union_decl into a new union_decl. More... | |
bool | elf_symbol_is_function (elf_symbol::type t) |
Test if the type of an ELF symbol denotes a function symbol. More... | |
bool | elf_symbol_is_variable (elf_symbol::type t) |
Test if the type of an ELF symbol denotes a function symbol. More... | |
bool | elf_symbols_alias (const elf_symbol &s1, const elf_symbol &s2) |
Test if two symbols alias. More... | |
bool | enum_has_non_name_change (const enum_type_decl &l, const enum_type_decl &r, change_kind *k) |
Test if two enums differ, but not by a name change. More... | |
bool | equals (const array_type_def &l, const array_type_def &r, change_kind *k) |
Compares two instances of array_type_def. More... | |
bool | equals (const array_type_def::subrange_type &l, const array_type_def::subrange_type &r, change_kind *k) |
Compares two isntances of array_type_def::subrange_type. More... | |
bool | equals (const class_decl &l, const class_decl &r, change_kind *k) |
Compares two instances of class_decl. More... | |
bool | equals (const class_decl::base_spec &l, const class_decl::base_spec &r, change_kind *k) |
Compares two instances of class_decl::base_spec. More... | |
bool | equals (const decl_base &l, const decl_base &r, change_kind *k) |
Compares two instances of decl_base. More... | |
bool | equals (const enum_type_decl &l, const enum_type_decl &r, change_kind *k) |
Compares two instances of enum_type_decl. More... | |
bool | equals (const function_decl &l, const function_decl &r, change_kind *k) |
Compares two instances of function_decl. More... | |
bool | equals (const function_decl::parameter &l, const function_decl::parameter &r, change_kind *k) |
Compares two instances of function_decl::parameter. More... | |
bool | equals (const function_type &l, const function_type &r, change_kind *k) |
Compare two function types. More... | |
bool | equals (const pointer_type_def &l, const pointer_type_def &r, change_kind *k) |
Compares two instances of pointer_type_def. More... | |
bool | equals (const ptr_to_mbr_type &l, const ptr_to_mbr_type &r, change_kind *k) |
Compares two instances of ptr_to_mbr_type. More... | |
bool | equals (const qualified_type_def &l, const qualified_type_def &r, change_kind *k) |
Compares two instances of qualified_type_def. More... | |
bool | equals (const reference_type_def &l, const reference_type_def &r, change_kind *k) |
Compares two instances of reference_type_def. More... | |
bool | equals (const scope_decl &l, const scope_decl &r, change_kind *k) |
Compares two instances of scope_decl. More... | |
bool | equals (const scope_type_decl &l, const scope_type_decl &r, change_kind *k) |
Compares two instances of scope_type_decl. More... | |
bool | equals (const type_base &l, const type_base &r, change_kind *k) |
Compares two instances of type_base. More... | |
bool | equals (const type_decl &l, const type_decl &r, change_kind *k) |
Compares two instances of type_decl. More... | |
bool | equals (const typedef_decl &l, const typedef_decl &r, change_kind *k) |
Compares two instances of typedef_decl. More... | |
bool | equals (const union_decl &l, const union_decl &r, change_kind *k) |
Compares two instances of union_decl. More... | |
bool | equals (const var_decl &l, const var_decl &r, change_kind *k) |
Compares two instances of var_decl. More... | |
bool | equals_modulo_cv_qualifier (const array_type_def *l, const array_type_def *r) |
Test if two array types are equals modulo CV qualifiers. More... | |
bool | equals_modulo_cv_qualifier (const array_type_def_sptr &l, const array_type_def_sptr &r) |
Test if two array types are equals modulo CV qualifiers. More... | |
bool | equals_modulo_cv_qualifier (const pointer_type_def *l, const pointer_type_def *r) |
Test if two pointer types are equals modulo CV qualifiers. More... | |
bool | equals_modulo_cv_qualifier (const pointer_type_def_sptr &l, const pointer_type_def_sptr &r) |
Test if two pointer types are equals modulo CV qualifiers. More... | |
void | fixup_virtual_member_function (method_decl_sptr method) |
When a virtual member function has seen its virtualness set by set_member_function_is_virtual(), this function ensures that the member function is added to the specific vectors and maps of virtual member function of its class. More... | |
void | fns_to_str (vector< function_decl * >::const_iterator a_begin, vector< function_decl * >::const_iterator a_end, vector< function_decl * >::const_iterator b_begin, vector< function_decl * >::const_iterator b_end, std::ostream &o) |
For each sequence of functions given in argument, generate a sequence of string that matches a given sequence of function. In the resulting sequence, each function is "uniquely representated" by a string. For instance, if the same function "foo" appears at indexes 1 and 3, then the same string 'schmurf' (okay, we don't care about the actual string) would appear at index 1 and 3. More... | |
bool | function_decls_alias (const function_decl &f1, const function_decl &f2) |
Test if two function declarations are aliases. More... | |
const function_decl::parameter * | get_function_parameter (const decl_base *fun, unsigned parm_index) |
Get the function parameter designated by its index. More... | |
access_specifier | get_member_access_specifier (const decl_base &d) |
Gets the access specifier for a class member. More... | |
access_specifier | get_member_access_specifier (const decl_base_sptr &d) |
Gets the access specifier for a class member. More... | |
interned_string | get_name_of_qualified_type (const type_base_sptr &underlying_type, qualified_type_def::CV quals, bool qualified, bool internal) |
Get the name of a qualified type, given the underlying type and its qualifiers. More... | |
string | get_string_representation_of_cv_quals (const qualified_type_def::CV cv_quals) |
Get the string representation of a CV qualifier bitmap. More... | |
bool | is_ada_language (translation_unit::language l) |
Test if a language enumerator designates the Ada language. More... | |
bool | is_c_language (translation_unit::language l) |
Test if a language enumerator designates the C language. More... | |
class_decl::base_spec * | is_class_base_spec (type_or_decl_base *) |
class_decl::base_spec_sptr | is_class_base_spec (type_or_decl_base_sptr tod) |
Test if an ABI artifact is a class base specifier. More... | |
bool | is_cplus_plus_language (translation_unit::language l) |
Test if a language enumerator designates the C++ language. More... | |
bool | is_enumerator_present_in_enum (const enum_type_decl::enumerator &enr, const enum_type_decl &enom) |
Test if a given enumerator is found present in an enum. More... | |
function_decl::parameter * | is_function_parameter (const type_or_decl_base *tod) |
Test whether a declaration is a function_decl. More... | |
function_decl::parameter_sptr | is_function_parameter (const type_or_decl_base_sptr tod) |
Test whether an ABI artifact is a function_decl. More... | |
bool | is_java_language (translation_unit::language l) |
Test if a language enumerator designates the Java language. More... | |
method_decl * | is_method_decl (const type_or_decl_base &d) |
Test if a function_decl is actually a method_decl. More... | |
method_decl * | is_method_decl (const type_or_decl_base *d) |
Test if a function_decl is actually a method_decl. More... | |
method_decl_sptr | is_method_decl (const type_or_decl_base_sptr &d) |
Test if a function_decl is actually a method_decl. More... | |
array_type_def::subrange_type * | is_subrange_type (const type_or_decl_base *type) |
Test if a type is an array_type_def::subrange_type. More... | |
array_type_def::subrange_sptr | is_subrange_type (const type_or_decl_base_sptr &type) |
Test if a type is an array_type_def::subrange_type. More... | |
const var_decl * | lookup_data_member (const type_base *type, const char *dm_name) |
Look for a data member of a given class, struct or union type and return it. More... | |
const var_decl_sptr | lookup_data_member (const type_base_sptr &type, const var_decl_sptr &dm) |
Look for a data member of a given class, struct or union type and return it. More... | |
qualified_type_def_sptr | lookup_qualified_type (const type_base_sptr &underlying_type, qualified_type_def::CV quals, const translation_unit &tu) |
Lookup a qualified type from a translation unit. More... | |
bool | maybe_compare_as_member_decls (const decl_base &l, const decl_base &r, change_kind *k) |
Compare the properties that belong to the "is-a-member-relation" of a decl. More... | |
bool | operator!= (const class_decl::base_spec_sptr &l, const class_decl::base_spec_sptr &r) |
Inequality operator for smart pointers to class_decl::base_specs. More... | |
bool | operator!= (const class_decl_sptr &l, const class_decl_sptr &r) |
Turn inequality of shared_ptr of class_decl into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator!= (const class_or_union_sptr &l, const class_or_union_sptr &r) |
Turn inequality of shared_ptr of class_or_union into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator!= (const decl_base_sptr &l, const decl_base_sptr &r) |
Inequality operator of shared_ptr of decl_base. More... | |
bool | operator!= (const elf_symbol_sptr &lhs, const elf_symbol_sptr &rhs) |
Inequality operator for smart pointers to elf_symbol. More... | |
bool | operator!= (const enum_type_decl_sptr &l, const enum_type_decl_sptr &r) |
Inequality operator for enum_type_decl_sptr. More... | |
bool | operator!= (const function_decl_sptr &l, const function_decl_sptr &r) |
A deep inequality operator for smart pointers to functions. More... | |
bool | operator!= (const member_class_template_sptr &l, const member_class_template_sptr &r) |
Inequality operator for the member_class_template type. More... | |
bool | operator!= (const member_function_template_sptr &l, const member_function_template_sptr &r) |
Inequality operator for smart pointers to member_function_template. This is compares the pointed-to instances. More... | |
bool | operator!= (const method_decl_sptr &l, const method_decl_sptr &r) |
Inequality operator for method_decl_sptr. More... | |
bool | operator!= (const pointer_type_def_sptr &l, const pointer_type_def_sptr &r) |
Turn inequality of shared_ptr of pointer_type_def into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator!= (const qualified_type_def_sptr &l, const qualified_type_def_sptr &r) |
Non-member inequality operator for qualified_type_def. More... | |
bool | operator!= (const reference_type_def_sptr &l, const reference_type_def_sptr &r) |
Turn inequality of shared_ptr of reference_type_def into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator!= (const scope_decl_sptr &l, const scope_decl_sptr &r) |
Inequality operator for scope_decl_sptr. More... | |
bool | operator!= (const translation_unit_sptr &l, const translation_unit_sptr &r) |
A deep inequality operator for pointers to translation units. More... | |
bool | operator!= (const type_base_sptr &l, const type_base_sptr &r) |
Turn inequality of shared_ptr of type_base into a deep equality; that is, make it compare the pointed to objects.. More... | |
bool | operator!= (const type_decl_sptr &l, const type_decl_sptr &r) |
Inequality operator for type_decl_sptr. More... | |
bool | operator!= (const type_or_decl_base_sptr &l, const type_or_decl_base_sptr &r) |
Non-member inequality operator for the @type_or_decl_base type. More... | |
bool | operator!= (const union_decl_sptr &l, const union_decl_sptr &r) |
Turn inequality of shared_ptr of union_decl into a deep equality; that is, make it compare the pointed to objects too. More... | |
change_kind | operator& (change_kind l, change_kind r) |
qualified_type_def::CV | operator& (qualified_type_def::CV lhs, qualified_type_def::CV rhs) |
Overloaded bitwise AND operator for CV qualifiers. More... | |
type_or_decl_base::type_or_decl_kind | operator& (type_or_decl_base::type_or_decl_kind l, type_or_decl_base::type_or_decl_kind r) |
bitwise "AND" operator for the type_or_decl_base::type_or_decl_kind bitmap type. More... | |
change_kind & | operator&= (change_kind &l, change_kind r) |
qualified_type_def::CV & | operator&= (qualified_type_def::CV &l, qualified_type_def::CV r) |
Overloaded bitwise &= operator for cv qualifiers. More... | |
type_or_decl_base::type_or_decl_kind & | operator&= (type_or_decl_base::type_or_decl_kind &l, type_or_decl_base::type_or_decl_kind r) |
bitwise "A&=" operator for the type_or_decl_base::type_or_decl_kind bitmap type. More... | |
std::ostream & | operator<< (std::ostream &o, access_specifier a) |
Streaming operator for class_decl::access_specifier. More... | |
std::ostream & | operator<< (std::ostream &o, decl_base::binding b) |
Streaming operator for decl_base::binding. More... | |
std::ostream & | operator<< (std::ostream &o, decl_base::visibility v) |
Streaming operator for the decl_base::visibility. More... | |
std::ostream & | operator<< (std::ostream &o, elf_symbol::binding b) |
Serialize an instance of symbol_binding and stream it to a given output stream. More... | |
std::ostream & | operator<< (std::ostream &o, elf_symbol::type t) |
Serialize an instance of symbol_type and stream it to a given output stream. More... | |
std::ostream & | operator<< (std::ostream &o, elf_symbol::visibility v) |
Serialize an instance of elf_symbol::visibility and stream it to a given output stream. More... | |
std::ostream & | operator<< (std::ostream &o, qualified_type_def::CV cv) |
Streaming operator for qualified_type_decl::CV. More... | |
bool | operator== (const class_decl::base_spec_sptr &l, const class_decl::base_spec_sptr &r) |
Equality operator for smart pointers to class_decl::base_specs. More... | |
bool | operator== (const class_decl_sptr &l, const class_decl_sptr &r) |
Turn equality of shared_ptr of class_decl into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator== (const class_or_union_sptr &l, const class_or_union_sptr &r) |
Turn equality of shared_ptr of class_or_union into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator== (const decl_base_sptr &l, const decl_base_sptr &r) |
Turn equality of shared_ptr of decl_base into a deep equality; that is, make it compare the pointed to objects, not just the pointers. More... | |
bool | operator== (const elf_symbol_sptr &lhs, const elf_symbol_sptr &rhs) |
Equality operator for smart pointers to elf_symbol. More... | |
bool | operator== (const enum_type_decl_sptr &l, const enum_type_decl_sptr &r) |
Equality operator for enum_type_decl_sptr. More... | |
bool | operator== (const function_decl::parameter_sptr &l, const function_decl::parameter_sptr &r) |
Non-member equality operator for function_decl::parameter. More... | |
bool | operator== (const function_decl_sptr &l, const function_decl_sptr &r) |
A deep comparison operator for a shared pointer to function_decl. More... | |
bool | operator== (const member_class_template_sptr &l, const member_class_template_sptr &r) |
Comparison operator for the member_class_template type. More... | |
bool | operator== (const member_function_template_sptr &l, const member_function_template_sptr &r) |
Equality operator for smart pointers to member_function_template. This is compares the pointed-to instances. More... | |
bool | operator== (const method_decl_sptr &l, const method_decl_sptr &r) |
Equality operator for method_decl_sptr. More... | |
bool | operator== (const pointer_type_def_sptr &l, const pointer_type_def_sptr &r) |
Turn equality of shared_ptr of pointer_type_def into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator== (const qualified_type_def_sptr &l, const qualified_type_def_sptr &r) |
Non-member equality operator for qualified_type_def. More... | |
bool | operator== (const reference_type_def_sptr &l, const reference_type_def_sptr &r) |
Turn equality of shared_ptr of reference_type_def into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator== (const scope_decl_sptr &l, const scope_decl_sptr &r) |
Equality operator for scope_decl_sptr. More... | |
bool | operator== (const translation_unit_sptr &l, const translation_unit_sptr &r) |
A deep comparison operator for pointers to translation units. More... | |
bool | operator== (const type_base_sptr &l, const type_base_sptr &r) |
Turn equality of shared_ptr of type_base into a deep equality; that is, make it compare the pointed to objects too. More... | |
bool | operator== (const type_decl_sptr &l, const type_decl_sptr &r) |
Equality operator for type_decl_sptr. More... | |
bool | operator== (const type_or_decl_base &lr, const type_or_decl_base &rr) |
Non-member equality operator for the @type_or_decl_base type. More... | |
bool | operator== (const type_or_decl_base_sptr &l, const type_or_decl_base_sptr &r) |
Non-member equality operator for the @type_or_decl_base type. More... | |
bool | operator== (const union_decl_sptr &l, const union_decl_sptr &r) |
Turn equality of shared_ptr of union_decl into a deep equality; that is, make it compare the pointed to objects too. More... | |
change_kind | operator| (change_kind l, change_kind r) |
qualified_type_def::CV | operator| (qualified_type_def::CV lhs, qualified_type_def::CV rhs) |
Overloaded bitwise OR operator for cv qualifiers. More... | |
type_or_decl_base::type_or_decl_kind | operator| (type_or_decl_base::type_or_decl_kind l, type_or_decl_base::type_or_decl_kind r) |
bitwise "OR" operator for the type_or_decl_base::type_or_decl_kind bitmap type. More... | |
change_kind & | operator|= (change_kind &l, change_kind r) |
qualified_type_def::CV & | operator|= (qualified_type_def::CV &l, qualified_type_def::CV r) |
Overloaded bitwise |= operator for cv qualifiers. More... | |
type_or_decl_base::type_or_decl_kind & | operator|= (type_or_decl_base::type_or_decl_kind &l, type_or_decl_base::type_or_decl_kind r) |
bitwise "|=" operator for the type_or_decl_base::type_or_decl_kind bitmap type. More... | |
qualified_type_def::CV | operator~ (qualified_type_def::CV q) |
Overloaded bitwise inverting operator for CV qualifiers. More... | |
hash_t | peek_hash_value (const type_or_decl_base &artefact) |
Get the hash value associated to an IR node. More... | |
void | set_member_access_specifier (const decl_base_sptr &d, access_specifier a) |
Sets the access specifier for a class member. More... | |
void | set_member_access_specifier (decl_base &d, access_specifier a) |
Sets the access specifier for a class member. More... | |
void | sort_types (const canonical_type_sptr_set_type &types, vector< type_base_sptr > &result) |
Sort types in a hopefully stable manner. More... | |
bool | string_to_elf_symbol_binding (const string &s, elf_symbol::binding &b) |
Convert a string representing a an elf symbol binding into an elf_symbol::binding. More... | |
bool | string_to_elf_symbol_type (const string &s, elf_symbol::type &t) |
Convert a string representing a symbol type into an elf_symbol::type. More... | |
bool | string_to_elf_symbol_visibility (const string &s, elf_symbol::visibility &v) |
Convert a string representing a an elf symbol visibility into an elf_symbol::visibility. More... | |
translation_unit::language | string_to_translation_unit_language (const string &l) |
Parse a string representing a language into a translation_unit::language enumerator into a string. More... | |
string | translation_unit_language_to_string (translation_unit::language l) |
Converts a translation_unit::language enumerator into a string. More... | |
bool | var_equals_modulo_types (const var_decl &l, const var_decl &r, change_kind *k) |
Compares two instances of var_decl without taking their type into account. More... | |
Types of the main internal representation of libabigail.
This file contains the declarations of the Internal Representation of libabigail.
This internal representation abstracts the artifacts that make up an application binary interface.
Definition in file abg-ir.h.