|
decl_base_sptr | add_decl_to_scope (decl_base_sptr decl, const scope_decl_sptr &scope) |
| Appends a declaration to a given scope, if the declaration doesn't already belong to a scope.
|
|
decl_base_sptr | add_decl_to_scope (decl_base_sptr decl, scope_decl *scope) |
| Appends a declaration to a given scope, if the declaration doesn't already belong to one and if the declaration is not for a type that is supposed to be unique.
|
|
bool | anonymous_data_member_exists_in_class (const var_decl &anon_dm, const class_or_union &clazz) |
| Test if a given anonymous data member exists in a class or union.
|
|
class_or_union_sptr | anonymous_data_member_to_class_or_union (const var_decl &d) |
| Get the class_or_union type of a given anonymous data member.
|
|
class_or_union * | anonymous_data_member_to_class_or_union (const var_decl *d) |
| Get the class_or_union type of a given anonymous data member.
|
|
class_or_union_sptr | anonymous_data_member_to_class_or_union (const var_decl_sptr &d) |
| Get the class_or_union type of a given anonymous data member.
|
|
string | build_internal_underlying_enum_type_name (const string &base_name, bool is_anonymous, uint64_t size) |
| Build the internal name of the underlying type of an enum.
|
|
string | build_qualified_name (const scope_decl *scope, const string &name) |
| Build and return a qualified name from a name and its scope.
|
|
string | build_qualified_name (const scope_decl *scope, const type_base_sptr &type) |
| Build and return the qualified name of a type in its scope.
|
|
type_base_sptr | canonicalize (type_base_sptr t, bool do_log=false, bool show_stats=false) |
| Compute the canonical type of a given type.
|
|
bool | class_or_union_types_of_same_kind (const class_or_union *first, const class_or_union *second) |
| Test if two class or union types are of the same kind.
|
|
bool | class_or_union_types_of_same_kind (const class_or_union_sptr &first, const class_or_union_sptr &second) |
| Test if two class or union types are of the same kind.
|
|
array_type_def_sptr | clone_array (const array_type_def_sptr &array) |
| Clone an array type.
|
|
type_base_sptr | clone_array_tree (const type_base_sptr t) |
| Clone a type tree made of an array or a typedef of array.
|
|
qualified_type_def_sptr | clone_qualified_type (const qualified_type_def_sptr &t) |
| Clone a qualifiend type.
|
|
typedef_decl_sptr | clone_typedef (const typedef_decl_sptr &t) |
| Clone a typedef type.
|
|
bool | collect_non_anonymous_data_members (const class_or_union *cou, string_decl_base_sptr_map &dms) |
| Collect all the non-anonymous data members of a class or union type.
|
|
bool | collect_non_anonymous_data_members (const class_or_union_sptr &cou, string_decl_base_sptr_map &dms) |
| Collect all the non-anonymous data members of a class or union type.
|
|
bool | compare_using_locations (const decl_base *f, const decl_base *s) |
| Compare decls using their locations.
|
|
string | components_to_type_name (const list< string > &comps) |
| Turn a set of qualified name components (that name a type) into a qualified name string.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
const class_or_union_sptr | data_member_has_anonymous_type (const var_decl &d) |
| Test if a data member has annonymous type or not.
|
|
const class_or_union_sptr | data_member_has_anonymous_type (const var_decl *d) |
| Test if a data member has annonymous type or not.
|
|
const class_or_union_sptr | data_member_has_anonymous_type (const var_decl_sptr &d) |
| Test if a data member has annonymous type or not.
|
|
decl_base * | debug (const decl_base *artifact) |
| Emit a textual representation of an artifact to std error stream for debugging purposes.
|
|
type_base * | debug (const type_base *artifact) |
| Emit a textual representation of an artifact to std error stream for debugging purposes.
|
|
type_or_decl_base * | debug (const type_or_decl_base *artifact) |
| Emit a textual representation of an artifact to std error stream for debugging purposes.
|
|
void | debug_comp_stack (const environment &env) |
| Emit a trace of the two comparison operands stack on the standard error stream.
|
|
bool | debug_equals (const type_or_decl_base *l, const type_or_decl_base *r) |
| Test if two ABI artifacts are equal.
|
|
string | demangle_cplus_mangled_name (const string &mangled_name) |
| Demangle a C++ mangled name and return the resulting string.
|
|
bool | elf_symbol_is_function (elf_symbol::type t) |
| Test if the type of an ELF symbol denotes a function symbol.
|
|
bool | elf_symbol_is_variable (elf_symbol::type t) |
| Test if the type of an ELF symbol denotes a function symbol.
|
|
bool | elf_symbols_alias (const elf_symbol &s1, const elf_symbol &s2) |
| Test if two symbols alias.
|
|
bool | elf_symbols_alias (const elf_symbol *s1, const elf_symbol *s2) |
| Test if two symbols alias.
|
|
bool | elf_symbols_alias (const elf_symbol_sptr s1, const elf_symbol_sptr s2) |
| Test if two symbols alias.
|
|
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.
|
|
bool | equals (const array_type_def &l, const array_type_def &r, change_kind *k) |
| Compares two instances of array_type_def.
|
|
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.
|
|
bool | equals (const class_decl &l, const class_decl &r, change_kind *k) |
| Compares two instances of class_decl.
|
|
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.
|
|
bool | equals (const class_or_union &l, const class_or_union &r, change_kind *k) |
| Compares two instances of class_or_union.
|
|
bool | equals (const decl_base &l, const decl_base &r, change_kind *k) |
| Compares two instances of decl_base.
|
|
bool | equals (const enum_type_decl &l, const enum_type_decl &r, change_kind *k) |
| Compares two instances of enum_type_decl.
|
|
bool | equals (const function_decl &l, const function_decl &r, change_kind *k) |
| Compares two instances of function_decl.
|
|
bool | equals (const function_decl::parameter &l, const function_decl::parameter &r, change_kind *k) |
| Compares two instances of function_decl::parameter.
|
|
bool | equals (const function_type &l, const function_type &r, change_kind *k) |
| Compare two function types.
|
|
bool | equals (const pointer_type_def &l, const pointer_type_def &r, change_kind *k) |
| Compares two instances of pointer_type_def.
|
|
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.
|
|
bool | equals (const qualified_type_def &l, const qualified_type_def &r, change_kind *k) |
| Compares two instances of qualified_type_def.
|
|
bool | equals (const reference_type_def &l, const reference_type_def &r, change_kind *k) |
| Compares two instances of reference_type_def.
|
|
bool | equals (const scope_decl &l, const scope_decl &r, change_kind *k) |
| Compares two instances of scope_decl.
|
|
bool | equals (const scope_type_decl &l, const scope_type_decl &r, change_kind *k) |
| Compares two instances of scope_type_decl.
|
|
bool | equals (const type_base &l, const type_base &r, change_kind *k) |
| Compares two instances of type_base.
|
|
bool | equals (const type_decl &l, const type_decl &r, change_kind *k) |
| Compares two instances of type_decl.
|
|
bool | equals (const typedef_decl &l, const typedef_decl &r, change_kind *k) |
| Compares two instances of typedef_decl.
|
|
bool | equals (const union_decl &l, const union_decl &r, change_kind *k) |
| Compares two instances of union_decl.
|
|
bool | equals (const var_decl &l, const var_decl &r, change_kind *k) |
| Compares two instances of var_decl.
|
|
bool | equals_modulo_cv_qualifier (const array_type_def *l, const array_type_def *r) |
| Test if two variables are equals modulo CV qualifiers.
|
|
var_decl_sptr | find_data_member_from_anonymous_data_member (const var_decl_sptr &anon_dm, const string &name) |
| Find a data member inside an anonymous data member.
|
|
var_decl_sptr | find_first_data_member_matching_regexp (const class_or_union &t, const regex::regex_t_sptr &r) |
| Find the first data member of a class or union which name matches a regular expression.
|
|
var_decl_sptr | find_last_data_member_matching_regexp (const class_or_union &t, const regex::regex_t_sptr ®ex) |
| Find the last data member of a class or union which name matches a regular expression.
|
|
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.
|
|
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.
|
|
void | fqn_to_components (const string &fqn, list< string > &comps) |
| Decompose a fully qualified name into the list of its components.
|
|
bool | function_decl_is_less_than (const function_decl &f, const function_decl &s) |
| Test if the pretty representation of a given function_decl is lexicographically less then the pretty representation of another function_decl.
|
|
bool | function_decls_alias (const function_decl &f1, const function_decl &f2) |
| Test if two function declarations are aliases.
|
|
uint64_t | get_absolute_data_member_offset (const var_decl &m) |
| Get the absolute offset of a data member.
|
|
uint64_t | get_absolute_data_member_offset (const var_decl_sptr &m) |
| Get the absolute offset of a data member.
|
|
const location & | get_artificial_or_natural_location (const decl_base *decl) |
| Get the artificial location of a decl.
|
|
size_t | get_canonical_type_index (const type_base &t) |
| Getter of the canonical type index of a given type.
|
|
size_t | get_canonical_type_index (const type_base *t) |
| Getter of the canonical type index of a given type.
|
|
size_t | get_canonical_type_index (const type_base_sptr &t) |
| Getter of the canonical type index of a given type.
|
|
string | get_class_or_enum_flat_representation (const type_base &coe, const string &indent, bool one_line, bool internal, bool qualified_name) |
| Get the flat representation of an instance of enum_type_decl type.
|
|
string | get_class_or_union_flat_representation (const class_or_union &cou, const string &indent, bool one_line, bool internal, bool qualified_names) |
| Get the flat representation of an instance of class_or_union type.
|
|
string | get_class_or_union_flat_representation (const class_or_union *cou, const string &indent, bool one_line, bool internal, bool qualified_names) |
| Get the flat representation of an instance of class_or_union type.
|
|
string | get_class_or_union_flat_representation (const class_or_union_sptr &cou, const string &indent, bool one_line, bool internal, bool qualified_names) |
| Get the flat representation of an instance of class_or_union type.
|
|
var_decl_sptr | get_data_member (class_or_union *clazz, const char *member_name) |
| Get a given data member, referred to by its name, of a class type.
|
|
var_decl_sptr | get_data_member (type_base *clazz, const char *member_name) |
| Get a given data member, referred to by its name, of a class type.
|
|
bool | get_data_member_is_laid_out (const var_decl &m) |
| Test whether a data member is laid out.
|
|
bool | get_data_member_is_laid_out (const var_decl_sptr m) |
| Test whether a data member is laid out.
|
|
uint64_t | get_data_member_offset (const decl_base_sptr d) |
| Get the offset of a data member.
|
|
uint64_t | get_data_member_offset (const var_decl &m) |
| Get the offset of a data member.
|
|
uint64_t | get_data_member_offset (const var_decl_sptr m) |
| Get the offset of a data member.
|
|
string | get_debug_representation (const type_or_decl_base *artifact) |
| Get the textual representation of a type for debugging purposes.
|
|
string | get_enum_flat_representation (const enum_type_decl &enum_type, const string &indent, bool one_line, bool qualified_names) |
| Get the flat representation of an instance of enum_type_decl type.
|
|
string | get_enum_flat_representation (const enum_type_decl *enum_type, const string &indent, bool one_line, bool qualified_names) |
| Get the flat representation of an instance of enum_type_decl type.
|
|
string | get_enum_flat_representation (const enum_type_decl_sptr &enum_type, const string &indent, bool one_line, bool qualified_names) |
| Get the flat representation of an instance of enum_type_decl type.
|
|
type_base * | get_exemplar_type (const type_base *type) |
| For a given type, return its exemplar type.
|
|
const var_decl_sptr | get_first_non_anonymous_data_member (const var_decl_sptr anon_dm) |
| Get the first non-anonymous data member of a given anonymous data member.
|
|
interned_string | get_function_id_or_pretty_representation (const function_decl *fn) |
| Get the ID of a function, or, if the ID can designate several different functions, get its pretty representation.
|
|
const function_decl::parameter * | get_function_parameter (const decl_base *fun, unsigned parm_index) |
| Get the function parameter designated by its index.
|
|
interned_string | get_function_type_name (const function_type &fn_type, bool internal) |
| Get the name of a given function type and return a copy of it.
|
|
interned_string | get_function_type_name (const function_type *fn_type, bool internal) |
| Get the name of a given function type and return a copy of it.
|
|
interned_string | get_function_type_name (const function_type_sptr &fn_type, bool internal) |
| Get the name of a given function type and return a copy of it.
|
|
const global_scope * | get_global_scope (const decl_base &decl) |
| return the global scope as seen by a given declaration.
|
|
const global_scope * | get_global_scope (const decl_base *decl) |
| return the global scope as seen by a given declaration.
|
|
const global_scope * | get_global_scope (const shared_ptr< decl_base > decl) |
| Return the global scope as seen by a given declaration.
|
|
var_decl_sptr | get_last_data_member (const class_or_union &klass) |
| Get the last data member of a class type.
|
|
var_decl_sptr | get_last_data_member (const class_or_union *klass) |
| Get the last data member of a class type.
|
|
var_decl_sptr | get_last_data_member (const class_or_union_sptr &klass) |
| Get the last data member of a class type.
|
|
location | get_location (const decl_base_sptr &decl) |
| Get the location of a given declaration.
|
|
location | get_location (const type_base_sptr &type) |
| Get the location of the declaration of a given type.
|
|
access_specifier | get_member_access_specifier (const decl_base &d) |
| Gets the access specifier for a class member.
|
|
access_specifier | get_member_access_specifier (const decl_base_sptr &d) |
| Gets the access specifier for a class member.
|
|
bool | get_member_function_is_const (const function_decl &f) |
| Test whether a member function is const.
|
|
bool | get_member_function_is_const (const function_decl_sptr &f) |
| Test whether a member function is const.
|
|
bool | get_member_function_is_ctor (const function_decl &f) |
| Test whether a member function is a constructor.
|
|
bool | get_member_function_is_ctor (const function_decl_sptr &f) |
| Test whether a member function is a constructor.
|
|
bool | get_member_function_is_dtor (const function_decl &f) |
| Test whether a member function is a destructor.
|
|
bool | get_member_function_is_dtor (const function_decl_sptr &f) |
| Test whether a member function is a destructor.
|
|
bool | get_member_function_is_virtual (const function_decl &f) |
| Test if a given member function is virtual.
|
|
bool | get_member_function_is_virtual (const function_decl *mem_fn) |
| Test if a given member function is virtual.
|
|
bool | get_member_function_is_virtual (const function_decl_sptr &mem_fn) |
| Test if a given member function is virtual.
|
|
ssize_t | get_member_function_vtable_offset (const function_decl &f) |
| Get the vtable offset of a member function.
|
|
ssize_t | get_member_function_vtable_offset (const function_decl_sptr &f) |
| Get the vtable offset of a member function.
|
|
bool | get_member_is_static (const decl_base &d) |
| Gets a flag saying if a class member is static or not.
|
|
bool | get_member_is_static (const decl_base *d) |
| Gets a flag saying if a class member is static or not.
|
|
bool | get_member_is_static (const decl_base_sptr &d) |
| Gets a flag saying if a class member is static or not.
|
|
interned_string | get_method_type_name (const method_type &fn_type, bool internal=false) |
| Get the name of a given method type and return a copy of it.
|
|
interned_string | get_method_type_name (const method_type *fn_type, bool internal) |
| Get the name of a given method type and return a copy of it.
|
|
interned_string | get_method_type_name (const method_type_sptr fn_type, bool internal) |
| Get the name of a given method type and return a copy of it.
|
|
string | get_name (const type_or_decl_base *tod, bool qualified) |
| Build and return a copy of the name of an ABI artifact that is either a type or a decl.
|
|
string | get_name (const type_or_decl_base_sptr &tod, bool qualified) |
| Build and return a copy of the name of an ABI artifact that is either a type of a decl.
|
|
interned_string | get_name_of_pointer_to_type (const type_base &pointed_to_type, bool qualified, bool internal) |
| Get the name of the pointer to a given type.
|
|
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.
|
|
interned_string | get_name_of_reference_to_type (const type_base &pointed_to_type, bool lvalue_reference, bool qualified, bool internal) |
| Get the name of the reference to a given type.
|
|
const location & | get_natural_or_artificial_location (const decl_base *decl) |
| Get the non-artificial (natural) location of a decl.
|
|
const var_decl_sptr | get_next_data_member (const class_or_union *klass, const var_decl_sptr &data_member) |
| In the context of a given class or union, this function returns the data member that is located after a given data member.
|
|
const var_decl_sptr | get_next_data_member (const class_or_union_sptr &klass, const var_decl_sptr &data_member) |
| In the context of a given class or union, this function returns the data member that is located after a given data member.
|
|
bool | get_next_data_member_offset (const class_or_union *klass, const var_decl_sptr &dm, uint64_t &offset) |
| Get the offset of the non-static data member that comes after a given one.
|
|
bool | get_next_data_member_offset (const class_or_union_sptr &klass, const var_decl_sptr &dm, uint64_t &offset) |
| Get the offset of the non-static data member that comes after a given one.
|
|
template<> |
const interned_string & | get_node_name (class_decl_sptr node) |
| Gets the name of a class_decl node.
|
|
template<> |
const interned_string & | get_node_name (type_base_sptr node) |
| Gets the name of a type_base node.
|
|
template<> |
const interned_string & | get_node_name (var_decl_sptr node) |
| Gets the name of a var_decl node.
|
|
string | get_pretty_representation (const decl_base *d, bool internal) |
| Get a copy of the pretty representation of a decl.
|
|
string | get_pretty_representation (const decl_base_sptr &d, bool internal) |
| Get a copy of the pretty representation of a decl.
|
|
string | get_pretty_representation (const function_type &fn_type, bool internal) |
| Get the pretty representation of a function type.
|
|
string | get_pretty_representation (const function_type *fn_type, bool internal) |
| Get the pretty representation of a function type.
|
|
string | get_pretty_representation (const function_type_sptr &fn_type, bool internal) |
| Get the pretty representation of a function type.
|
|
string | get_pretty_representation (const method_type &method, bool internal) |
| Get the pretty representation of a method type.
|
|
string | get_pretty_representation (const method_type *method, bool internal) |
| Get the pretty representation of a method type.
|
|
string | get_pretty_representation (const method_type_sptr method, bool internal) |
| Get the pretty representation of a method type.
|
|
string | get_pretty_representation (const type_base *t, bool internal) |
| Get a copy of the pretty representation of a type.
|
|
string | get_pretty_representation (const type_base_sptr &t, bool internal) |
| Get a copy of the pretty representation of a type.
|
|
string | get_pretty_representation (const type_or_decl_base *tod, bool internal) |
| Build and return a copy of the pretty representation of an ABI artifact that could be either a type of a decl.
|
|
string | get_pretty_representation (const type_or_decl_base_sptr &tod, bool internal) |
| Build and return a copy of the pretty representation of an ABI artifact that could be either a type of a decl.
|
|
string | get_string_representation_of_cv_quals (const qualified_type_def::CV cv_quals) |
| Get the string representation of a CV qualifier bitmap.
|
|
const scope_decl * | get_top_most_scope_under (const decl_base *decl, const scope_decl *scope) |
| Return the a scope S containing a given declaration and that is right under a given scope P.
|
|
const scope_decl * | get_top_most_scope_under (const decl_base_sptr decl, const scope_decl *scope) |
| Return the a scope S containing a given declaration and that is right under a given scope P.
|
|
const scope_decl * | get_top_most_scope_under (const decl_base_sptr decl, const scope_decl_sptr scope) |
| Return the a scope S containing a given declaration and that is right under a given scope P.
|
|
translation_unit * | get_translation_unit (const type_or_decl_base &t) |
| Return the translation unit a declaration belongs to.
|
|
translation_unit * | get_translation_unit (const type_or_decl_base *decl) |
| Return the translation unit a declaration belongs to.
|
|
translation_unit * | get_translation_unit (const type_or_decl_base_sptr &decl) |
| Return the translation unit a declaration belongs to.
|
|
const decl_base * | get_type_declaration (const type_base *t) |
| Get the declaration for a given type.
|
|
decl_base_sptr | get_type_declaration (const type_base_sptr t) |
| Get the declaration for a given type.
|
|
decl_base * | get_type_declaration (type_base *t) |
| Get the declaration for a given type.
|
|
interned_string | get_type_name (const type_base &t, bool qualified, bool internal) |
| Get the name of a given type and return a copy of it.
|
|
interned_string | get_type_name (const type_base *t, bool qualified, bool internal) |
| Get the name of a given type and return a copy of it.
|
|
interned_string | get_type_name (const type_base_sptr &t, bool qualified, bool internal) |
| Get the name of a given type and return a copy of it.
|
|
scope_decl * | get_type_scope (const type_base_sptr &t) |
| Get the scope of a given type.
|
|
scope_decl * | get_type_scope (type_base *t) |
| Get the scope of a given type.
|
|
uint64_t | get_var_size_in_bits (const var_decl_sptr &v) |
| Get the size of a given variable.
|
|
var_decl_sptr | has_fake_flexible_array_data_member (const class_decl &klass) |
| Test if the last data member of a class is an array with one element.
|
|
var_decl_sptr | has_fake_flexible_array_data_member (const class_decl *klass) |
| Test if the last data member of a class is an array with one element.
|
|
var_decl_sptr | has_fake_flexible_array_data_member (const class_decl_sptr &klass) |
| Test if the last data member of a class is an array with one element.
|
|
var_decl_sptr | has_flexible_array_data_member (const class_decl &klass) |
| Test if the last data member of a class is an array with non-finite data member.
|
|
var_decl_sptr | has_flexible_array_data_member (const class_decl *klass) |
| Test if the last data member of a class is an array with non-finite data member.
|
|
var_decl_sptr | has_flexible_array_data_member (const class_decl_sptr &klass) |
| Test if the last data member of a class is an array with non-finite data member.
|
|
bool | has_scope (const decl_base &d) |
| Tests if a declaration has got a scope.
|
|
bool | has_scope (const decl_base_sptr d) |
| Tests if a declaration has got a scope.
|
|
size_t | hash_type (const type_base *t) |
| Hash an ABI artifact that is a type.
|
|
size_t | hash_type_or_decl (const type_or_decl_base *tod) |
| Hash an ABI artifact that is either a type or a decl.
|
|
size_t | hash_type_or_decl (const type_or_decl_base_sptr &tod) |
| Hash an ABI artifact that is either a type of a decl.
|
|
decl_base_sptr | insert_decl_into_scope (decl_base_sptr decl, scope_decl::declarations::iterator before, scope_decl *scope) |
| Inserts a declaration into a given scope, before a given IR child node of the scope.
|
|
decl_base_sptr | insert_decl_into_scope (decl_base_sptr decl, scope_decl::declarations::iterator before, scope_decl_sptr scope) |
| Inserts a declaration into a given scope, before a given IR child node of the scope.
|
|
bool | is_ada_language (translation_unit::language l) |
| Test if a language enumerator designates the Ada language.
|
|
bool | is_anonymous_data_member (const decl_base &d) |
| Test if a decl is an anonymous data member.
|
|
const var_decl * | is_anonymous_data_member (const decl_base *d) |
| Test if a decl is an anonymous data member.
|
|
var_decl_sptr | is_anonymous_data_member (const decl_base_sptr &d) |
| Test if a decl is an anonymous data member.
|
|
const var_decl * | is_anonymous_data_member (const type_or_decl_base *d) |
| Test if a decl is an anonymous data member.
|
|
var_decl_sptr | is_anonymous_data_member (const type_or_decl_base_sptr &d) |
| Test if a decl is an anonymous data member.
|
|
bool | is_anonymous_data_member (const var_decl &d) |
| Test if a var_decl is an anonymous data member.
|
|
const var_decl * | is_anonymous_data_member (const var_decl *d) |
| Test if a var_decl is an anonymous data member.
|
|
var_decl_sptr | is_anonymous_data_member (const var_decl_sptr &d) |
| Test if a var_decl is an anonymous data member.
|
|
bool | is_anonymous_or_typedef_named (const decl_base &d) |
| Test if a given decl is anonymous or has a naming typedef.
|
|
bool | is_anonymous_type (const type_base *t) |
| Test whether a declaration is a type.
|
|
bool | is_anonymous_type (const type_base_sptr &t) |
| Test if a given type is anonymous.
|
|
qualified_type_def_sptr | is_array_of_qualified_element (const array_type_def_sptr &array) |
| Tests if the element of a given array is a qualified type.
|
|
array_type_def_sptr | is_array_of_qualified_element (const type_base_sptr &type) |
| Test if an array type is an array to a qualified element type.
|
|
array_type_def * | is_array_type (const type_or_decl_base *type, bool look_through_qualifiers) |
| Test if a type is an array_type_def.
|
|
array_type_def_sptr | is_array_type (const type_or_decl_base_sptr &type, bool look_through_qualifiers) |
| Test if a type is an array_type_def.
|
|
class_or_union * | is_at_class_scope (const decl_base &decl) |
| Tests whether a given decl is at class scope.
|
|
class_or_union * | is_at_class_scope (const decl_base *decl) |
| Tests whether a given decl is at class scope.
|
|
class_or_union * | is_at_class_scope (const decl_base_sptr decl) |
| Tests whether a given decl is at class scope.
|
|
bool | is_at_global_scope (const decl_base &decl) |
| Tests whether a given declaration is at global scope.
|
|
bool | is_at_global_scope (const decl_base *decl) |
| Tests whether a given declaration is at global scope.
|
|
bool | is_at_global_scope (const decl_base_sptr decl) |
| Tests whether a given declaration is at global scope.
|
|
bool | is_at_template_scope (const shared_ptr< decl_base > decl) |
| Tests whether a given decl is at template scope.
|
|
bool | is_c_language (translation_unit::language l) |
| Test if a language enumerator designates the C language.
|
|
class_decl::base_spec * | is_class_base_spec (const type_or_decl_base *tod) |
| Test if an ABI artifact is a class base specifier.
|
|
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.
|
|
shared_ptr< class_or_union > | is_class_or_union_type (const shared_ptr< type_or_decl_base > &t) |
| Test if a type is a class_or_union.
|
|
class_or_union * | is_class_or_union_type (const type_or_decl_base *t) |
| Test if a type is a class_or_union.
|
|
bool | is_class_type (const type_or_decl_base &t) |
| Test whether a type is a class.
|
|
class_decl * | is_class_type (const type_or_decl_base *t) |
| Test whether a type is a class.
|
|
class_decl_sptr | is_class_type (const type_or_decl_base_sptr &d) |
| Test whether a type is a class.
|
|
template<> |
bool | is_comparison_cycle_detected (const class_decl &l, const class_decl &r) |
| Detect if a recursive comparison cycle is detected while structurally comparing two class_decl types.
|
|
template<typename T > |
bool | is_comparison_cycle_detected (T &l, T &r) |
| Detect if a recursive comparison cycle is detected while structurally comparing two types (a.k.a member-wise comparison).
|
|
class_decl_sptr | is_compatible_with_class_type (const decl_base_sptr &t) |
| Test if a type is a class. This function looks through typedefs.
|
|
class_decl_sptr | is_compatible_with_class_type (const type_base_sptr &t) |
| Test if a type is a class. This function looks through typedefs.
|
|
enum_type_decl_sptr | is_compatible_with_enum_type (const decl_base_sptr &t) |
| Test if a type is an enum. This function looks through typedefs.
|
|
enum_type_decl_sptr | is_compatible_with_enum_type (const type_base_sptr &t) |
| Test if a type is an enum. This function looks through typedefs.
|
|
bool | is_const_qualified_type (const qualified_type_def_sptr &t) |
| Test if a given qualified type is const.
|
|
bool | is_const_qualified_type (const type_base_sptr &t) |
| Test if a given type is const-qualified.
|
|
bool | is_cplus_plus_language (translation_unit::language l) |
| Test if a language enumerator designates the C++ language.
|
|
var_decl * | is_data_member (const decl_base *d) |
| Test if a decl is a data member.
|
|
var_decl_sptr | is_data_member (const decl_base_sptr &d) |
| Test if a decl is a data member.
|
|
var_decl * | is_data_member (const type_or_decl_base *d) |
| Test if a decl is a data member.
|
|
var_decl_sptr | is_data_member (const type_or_decl_base_sptr &d) |
| Test if a decl is a data member.
|
|
bool | is_data_member (const var_decl &v) |
| Test if a var_decl is a data member.
|
|
bool | is_data_member (const var_decl *v) |
| Test if a var_decl is a data member.
|
|
bool | is_data_member (const var_decl_sptr d) |
| Test if a var_decl is a data member.
|
|
bool | is_data_member_of_anonymous_class_or_union (const var_decl &d) |
| Test if a var_decl is a data member belonging to an anonymous type.
|
|
bool | is_data_member_of_anonymous_class_or_union (const var_decl *d) |
| Test if a var_decl is a data member belonging to an anonymous type.
|
|
bool | is_data_member_of_anonymous_class_or_union (const var_decl_sptr &d) |
| Test if a var_decl is a data member belonging to an anonymous type.
|
|
decl_base * | is_decl (const type_or_decl_base *d) |
| Test if an ABI artifact is a declaration.
|
|
decl_base_sptr | is_decl (const type_or_decl_base_sptr &d) |
| Test if an ABI artifact is a declaration.
|
|
decl_base * | is_decl_slow (const type_or_decl_base *t) |
| Test if an ABI artifact is a declaration.
|
|
decl_base_sptr | is_decl_slow (const type_or_decl_base_sptr &t) |
| Test if an ABI artifact is a declaration.
|
|
bool | is_declaration_only_class_or_union_type (const type_base *t, bool look_through_decl_only) |
| Test wheter a type is a declaration-only class.
|
|
bool | is_declaration_only_class_or_union_type (const type_base_sptr &t, bool look_through_decl_only) |
| Test wheter a type is a declaration-only class.
|
|
bool | is_declaration_only_class_type (const type_base_sptr &t, bool look_through_decl_only) |
| Test wheter a type is a declaration-only class.
|
|
const enum_type_decl * | is_enum_type (const type_or_decl_base *d) |
| Test if a decl is an enum_type_decl.
|
|
enum_type_decl_sptr | is_enum_type (const type_or_decl_base_sptr &d) |
| Test if a decl is an enum_type_decl.
|
|
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.
|
|
bool | is_function_decl (const type_or_decl_base &d) |
| Test whether a declaration is a function_decl.
|
|
function_decl * | is_function_decl (const type_or_decl_base *d) |
| Test whether a declaration is a function_decl.
|
|
function_decl_sptr | is_function_decl (const type_or_decl_base_sptr &d) |
| Test whether a declaration is a function_decl.
|
|
function_decl::parameter * | is_function_parameter (const type_or_decl_base *tod) |
| Test whether a declaration is a function_decl.
|
|
function_decl::parameter_sptr | is_function_parameter (const type_or_decl_base_sptr tod) |
| Test whether an ABI artifact is a function_decl.
|
|
bool | is_function_template_pattern (const shared_ptr< decl_base > decl) |
| Test whether a decl is the pattern of a function template.
|
|
const function_type * | is_function_type (const type_or_decl_base *t) |
| Test whether a type is a function_type.
|
|
function_type_sptr | is_function_type (const type_or_decl_base_sptr &t) |
| Test whether a type is a function_type.
|
|
function_type * | is_function_type (type_or_decl_base *t) |
| Test whether a type is a function_type.
|
|
bool | is_global_scope (const scope_decl &scope) |
| Tests whether if a given scope is the global scope.
|
|
const global_scope * | is_global_scope (const scope_decl *scope) |
| Tests whether if a given scope is the global scope.
|
|
bool | is_global_scope (const shared_ptr< scope_decl >scope) |
| Tests whether if a given scope is the global scope.
|
|
type_decl * | is_integral_type (const type_or_decl_base *t) |
| Test if a type is an integral type.
|
|
type_decl_sptr | is_integral_type (const type_or_decl_base_sptr &t) |
| Test if a type is an integral type.
|
|
bool | is_java_language (translation_unit::language l) |
| Test if a language enumerator designates the Java language.
|
|
bool | is_member_decl (const decl_base &d) |
| Tests if a declaration is a class member.
|
|
bool | is_member_decl (const decl_base *d) |
| Tests if a declaration is a class member.
|
|
bool | is_member_decl (const decl_base_sptr d) |
| Tests if a declaration is a class member.
|
|
bool | is_member_function (const function_decl &f) |
| Test whether a function_decl is a member function.
|
|
bool | is_member_function (const function_decl *f) |
| Test whether a function_decl is a member function.
|
|
bool | is_member_function (const function_decl_sptr &f) |
| Test whether a function_decl is a member function.
|
|
bool | is_member_type (const type_base_sptr &t) |
| Tests if a type is a class member.
|
|
method_decl * | is_method_decl (const type_or_decl_base &d) |
| Test if a function_decl is actually a method_decl.
|
|
method_decl * | is_method_decl (const type_or_decl_base *d) |
| Test if a function_decl is actually a method_decl.
|
|
method_decl_sptr | is_method_decl (const type_or_decl_base_sptr &d) |
| Test if a function_decl is actually a method_decl.
|
|
const method_type * | is_method_type (const type_or_decl_base *t) |
| Test whether a type is a method_type.
|
|
method_type_sptr | is_method_type (const type_or_decl_base_sptr &t) |
| Test whether a type is a method_type.
|
|
method_type * | is_method_type (type_or_decl_base *t) |
| Test whether a type is a method_type.
|
|
namespace_decl * | is_namespace (const decl_base *d) |
| Tests if a declaration is a namespace declaration.
|
|
namespace_decl_sptr | is_namespace (const decl_base_sptr &d) |
| Tests if a declaration is a namespace declaration.
|
|
bool | is_non_canonicalized_type (const type_base *t) |
| Test if a given type is allowed to be non canonicalized.
|
|
bool | is_non_canonicalized_type (const type_base_sptr &t) |
| Test if a given type is allowed to be non canonicalized.
|
|
bool | is_npaf_type (const type_base_sptr &t) |
| Test if a type is a neither a pointer, an array nor a function type.
|
|
pointer_type_def_sptr | is_pointer_to_array_type (const type_base_sptr &t) |
| Test if a type is a pointer to array type.
|
|
pointer_type_def_sptr | is_pointer_to_function_type (const type_base_sptr &t) |
| Test if a type is a pointer to function type.
|
|
pointer_type_def_sptr | is_pointer_to_npaf_type (const type_base_sptr &t) |
| Test if we are looking at a pointer to a neither-a-pointer-to-an-array-nor-a-function type.
|
|
pointer_type_def_sptr | is_pointer_to_ptr_to_mbr_type (const type_base_sptr &t) |
| Test if we are looking at a pointer to pointer to member type.
|
|
const pointer_type_def * | is_pointer_type (const type_or_decl_base *t, bool look_through_qualifiers) |
| Test whether a type is a pointer_type_def.
|
|
pointer_type_def_sptr | is_pointer_type (const type_or_decl_base_sptr &t, bool look_through_qualifiers) |
| Test whether a type is a pointer_type_def.
|
|
bool | is_ptr_ref_or_qual_type (const type_base *t) |
| Helper to detect if a type is either a reference, a pointer, or a qualified type.
|
|
const ptr_to_mbr_type * | is_ptr_to_mbr_type (const type_or_decl_base *t, bool look_through_qualifiers) |
| Test whether a type is a ptr_to_mbr_type.
|
|
ptr_to_mbr_type_sptr | is_ptr_to_mbr_type (const type_or_decl_base_sptr &t, bool look_through_qualifiers) |
| Test whether a type is a ptr_to_mbr_type_sptr.
|
|
qualified_type_def * | is_qualified_type (const type_or_decl_base *t) |
| Test whether a type is a reference_type_def.
|
|
qualified_type_def_sptr | is_qualified_type (const type_or_decl_base_sptr &t) |
| Test whether a type is a qualified_type_def.
|
|
type_decl * | is_real_type (const type_or_decl_base *t) |
| Test if a type is a real type.
|
|
type_decl_sptr | is_real_type (const type_or_decl_base_sptr &t) |
| Test if a type is a real type.
|
|
const reference_type_def * | is_reference_type (const type_or_decl_base *t, bool look_through_qualifiers) |
| Test whether a type is a reference_type_def.
|
|
reference_type_def_sptr | is_reference_type (const type_or_decl_base_sptr &t, bool look_through_qualifiers) |
| Test whether a type is a reference_type_def.
|
|
reference_type_def * | is_reference_type (type_or_decl_base *t, bool look_through_qualifiers) |
| Test whether a type is a reference_type_def.
|
|
const scope_decl * | is_scope_decl (const decl_base *d) |
| Test if a declaration is a scope_decl.
|
|
scope_decl_sptr | is_scope_decl (const decl_base_sptr &d) |
| Test if a declaration is a scope_decl.
|
|
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.
|
|
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.
|
|
bool | is_template_decl (const decl_base_sptr &decl) |
| Tests whether a decl is a template.
|
|
bool | is_template_parameter (const shared_ptr< decl_base > decl) |
| Tests whether a decl is a template parameter.
|
|
bool | is_template_parm_composition_type (const shared_ptr< decl_base > decl) |
| Tests whether a decl is a template parameter composition type.
|
|
bool | is_type (const type_or_decl_base &tod) |
| Test whether a declaration is a type.
|
|
type_base * | is_type (const type_or_decl_base *t) |
| Test whether a declaration is a type.
|
|
type_base_sptr | is_type (const type_or_decl_base_sptr &tod) |
| Test whether a declaration is a type.
|
|
const type_decl * | is_type_decl (const type_or_decl_base *t) |
| Test whether a type is a type_decl (a builtin type).
|
|
type_decl_sptr | is_type_decl (const type_or_decl_base_sptr &t) |
| Test whether a type is a type_decl (a builtin type).
|
|
const typedef_decl * | is_typedef (const type_base *t) |
| Test whether a type is a typedef.
|
|
const typedef_decl * | is_typedef (const type_or_decl_base *t) |
| Test whether a type is a typedef.
|
|
typedef_decl_sptr | is_typedef (const type_or_decl_base_sptr t) |
| Test whether a type is a typedef.
|
|
typedef_decl * | is_typedef (type_base *t) |
| Test whether a type is a typedef.
|
|
array_type_def_sptr | is_typedef_of_array (const type_base_sptr &t) |
| Test if a type is a typedef of an array.
|
|
bool | is_typedef_of_maybe_qualified_class_or_union_type (const type_base *t) |
| Test if a type is a typedef of a class or union type, or a typedef of a qualified class or union type.
|
|
bool | is_typedef_of_maybe_qualified_class_or_union_type (const type_base_sptr &t) |
| Test if a type is a typedef of a class or union type, or a typedef of a qualified class or union type.
|
|
bool | is_typedef_ptr_or_ref_to_decl_only_class_or_union_type (const type_base *t) |
| Test if a type is a typedef, pointer or reference to a decl-only class/union.
|
|
union_decl_sptr | is_union_type (const shared_ptr< type_or_decl_base > &t) |
| Test if a type is a union_decl.
|
|
bool | is_union_type (const type_or_decl_base &t) |
| Test if a type is a union_decl.
|
|
union_decl * | is_union_type (const type_or_decl_base *t) |
| Test if a type is a union_decl.
|
|
bool | is_unique_type (const type_base *t) |
| Test if a type is unique in the entire environment.
|
|
bool | is_unique_type (const type_base_sptr &t) |
| Test if a type is unique in the entire environment.
|
|
bool | is_user_defined_type (const type_base *t) |
| Test if a type is user-defined.
|
|
bool | is_user_defined_type (const type_base_sptr &t) |
| Test if a type is user-defined.
|
|
var_decl * | is_var_decl (const type_or_decl_base *tod) |
| Tests if a declaration is a variable declaration.
|
|
var_decl_sptr | is_var_decl (const type_or_decl_base_sptr &decl) |
| Tests if a declaration is a variable declaration.
|
|
const type_base * | is_void_pointer_type (const type_base *t) |
| Test if a type is a pointer to void type.
|
|
const type_base_sptr | is_void_pointer_type (const type_base_sptr &t) |
| Test if a type is a pointer to void type.
|
|
const type_base * | is_void_pointer_type_equivalent (const type_base &type) |
| Test if a type is equivalent to a pointer to void type.
|
|
const type_base * | is_void_pointer_type_equivalent (const type_base *type) |
| Test if a type is equivalent to a pointer to void type.
|
|
void | keep_type_alive (type_base_sptr t) |
| Make sure that the life time of a given (smart pointer to a) type is the same as the life time of the libabigail library.
|
|
decl_base_sptr | look_through_decl_only (const decl_base &d) |
| If a decl is decl-only get its definition. Otherwise, just return nil.
|
|
decl_base_sptr | look_through_decl_only (const decl_base_sptr &d) |
| If a decl is decl-only get its definition. Otherwise, just return nil.
|
|
decl_base * | look_through_decl_only (decl_base *d) |
| If a decl is decl-only enum, get its definition. Otherwise, just return the initial decl.
|
|
class_or_union * | look_through_decl_only_class (class_or_union *the_class) |
| If a class (or union) is a decl-only class, get its definition. Otherwise, just return the initial class.
|
|
class_or_union_sptr | look_through_decl_only_class (class_or_union_sptr klass) |
| If a class (or union) is a decl-only class, get its definition. Otherwise, just return the initial class.
|
|
class_or_union_sptr | look_through_decl_only_class (const class_or_union &the_class) |
| If a class (or union) is a decl-only class, get its definition. Otherwise, just return the initial class.
|
|
enum_type_decl_sptr | look_through_decl_only_enum (const enum_type_decl &the_enum) |
| If an enum is a decl-only enum, get its definition. Otherwise, just return the initial enum.
|
|
enum_type_decl_sptr | look_through_decl_only_enum (enum_type_decl_sptr enom) |
| If an enum is a decl-only enum, get its definition. Otherwise, just return the initial enum.
|
|
type_base_sptr | look_through_decl_only_type (const type_base_sptr &t) |
| If a type is is decl-only, then get its definition. Otherwise, just return the initial type.
|
|
type_base * | look_through_decl_only_type (type_base *t) |
| If a type is is decl-only, then get its definition. Otherwise, just return the initial type.
|
|
array_type_def_sptr | lookup_array_type (const array_type_def &t, const corpus &corp) |
| Look into a given corpus to find an array type which has a given qualified name.
|
|
array_type_def_sptr | lookup_array_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find an array type which has the same qualified name as a given array type.
|
|
array_type_def_sptr | lookup_array_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup an array type from a translation unit.
|
|
type_decl_sptr | lookup_basic_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a basic type which has a given qualified name.
|
|
type_decl_sptr | lookup_basic_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a basic type from a translation unit.
|
|
type_decl_sptr | lookup_basic_type (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a basic type which has a given qualified name.
|
|
type_decl_sptr | lookup_basic_type (const string &type_name, const translation_unit &tu) |
| Lookup a basic type from a translation unit.
|
|
type_decl_sptr | lookup_basic_type (const type_decl &t, const corpus &corp) |
| Look into a given corpus to find a type which has the same qualified name as a giventype.
|
|
type_decl_sptr | lookup_basic_type_per_location (const interned_string &loc, const corpus &corp) |
| Lookup a type_decl type from a given corpus, by its location.
|
|
type_decl_sptr | lookup_basic_type_per_location (const string &loc, const corpus &corp) |
| Lookup a type_decl type from a given corpus, by its location.
|
|
type_base_sptr | lookup_class_or_typedef_type (const string &qualified_name, const corpus &corp) |
| Look into a corpus to find a class, union or typedef type which has a given qualified name.
|
|
class_decl_sptr | lookup_class_type (const class_decl &t, const corpus &corp) |
| Look into a given corpus to find a class type which has the same qualified name as a given type.
|
|
class_decl_sptr | lookup_class_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a class type which has a given qualified name.
|
|
class_decl_sptr | lookup_class_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a class type from a translation unit.
|
|
class_decl_sptr | lookup_class_type (const string &fqn, const translation_unit &tu) |
| Lookup a class type from a translation unit.
|
|
class_decl_sptr | lookup_class_type (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a class type which has a given qualified name.
|
|
class_decl_sptr | lookup_class_type_per_location (const interned_string &loc, const corpus &corp) |
| Look up a class_decl from a given corpus by its location.
|
|
class_decl_sptr | lookup_class_type_per_location (const string &loc, const corpus &corp) |
| Look up a class_decl from a given corpus by its location.
|
|
class_decl_sptr | lookup_class_type_through_scopes (const list< string > &fqn, const translation_unit &tu) |
| Lookup a class type from a translation unit by walking its scopes in sequence and by looking into them.
|
|
type_base_sptr | lookup_class_typedef_or_enum_type (const string &qualified_name, const corpus &corp) |
| Look into a corpus to find a class, typedef or enum type which has a given qualified name.
|
|
const type_base_wptrs_type * | lookup_class_types (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find the class type*s* that have a given qualified name.
|
|
const type_base_wptrs_type * | lookup_class_types (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find the class type*s* that have a given qualified name.
|
|
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.
|
|
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.
|
|
bool | lookup_decl_only_class_types (const interned_string &qualified_name, const corpus &corp, type_base_wptrs_type &result) |
| Look into a given corpus to find the class type*s* that have a given qualified name and that are declaration-only.
|
|
enum_type_decl_sptr | lookup_enum_type (const enum_type_decl &t, const corpus &corp) |
| Look into a given corpus to find an enum type which has the same qualified name as a given enum type.
|
|
enum_type_decl_sptr | lookup_enum_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find an enum type which has a given qualified name.
|
|
enum_type_decl_sptr | lookup_enum_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup an enum type from a translation unit.
|
|
enum_type_decl_sptr | lookup_enum_type (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find an enum type which has a given qualified name.
|
|
enum_type_decl_sptr | lookup_enum_type (const string &type_name, const translation_unit &tu) |
| Lookup an enum type from a translation unit.
|
|
enum_type_decl_sptr | lookup_enum_type_per_location (const interned_string &loc, const corpus &corp) |
| Look up an enum_type_decl from a given corpus, by its location.
|
|
enum_type_decl_sptr | lookup_enum_type_per_location (const string &loc, const corpus &corp) |
| Look up an enum_type_decl from a given corpus, by its location.
|
|
const type_base_wptrs_type * | lookup_enum_types (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find the enum type*s* that have a given qualified name.
|
|
const type_base_wptrs_type * | lookup_enum_types (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find the enum type*s* that have a given qualified name.
|
|
function_type_sptr | lookup_function_type (const function_type &t, const corpus &corp) |
| Look into a given corpus to find a function type which has the same qualified name as a given function type.
|
|
function_type_sptr | lookup_function_type (const function_type &t, const translation_unit &tu) |
| Lookup a function type from a translation unit.
|
|
function_type_sptr | lookup_function_type (const function_type_sptr &fn_t, const corpus &corpus) |
| Look into a given corpus to find a function type which has the same qualified name as a given function type.
|
|
function_type_sptr | lookup_function_type (const function_type_sptr &t, const translation_unit &tu) |
| Lookup a function type from a translation unit.
|
|
function_type_sptr | lookup_function_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a function type which has a given qualified name.
|
|
function_type_sptr | lookup_function_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a function type from a translation unit.
|
|
function_type_sptr | lookup_or_synthesize_fn_type (const function_type_sptr &fn_t, const corpus &corpus) |
| Look into an ABI corpus for a function type.
|
|
pointer_type_def_sptr | lookup_pointer_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a pointer type which has a given qualified name.
|
|
pointer_type_def_sptr | lookup_pointer_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a pointer type from a translation unit.
|
|
pointer_type_def_sptr | lookup_pointer_type (const pointer_type_def &t, const corpus &corp) |
| Look into a given corpus to find a pointer type which has the same qualified name as a given pointer type.
|
|
pointer_type_def_sptr | lookup_pointer_type (const string &type_name, const translation_unit &tu) |
| Lookup a pointer type from a translation unit.
|
|
pointer_type_def_sptr | lookup_pointer_type (const type_base_sptr &pointed_to_type, const translation_unit &tu) |
| Lookup a pointer type from a translation unit.
|
|
qualified_type_def_sptr | lookup_qualified_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a qualified type which has a given qualified name.
|
|
qualified_type_def_sptr | lookup_qualified_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a qualified type from a translation unit.
|
|
qualified_type_def_sptr | lookup_qualified_type (const qualified_type_def &t, const corpus &corp) |
| Look into a given corpus to find a qualified type which has the same qualified name as a given type.
|
|
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.
|
|
reference_type_def_sptr | lookup_reference_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a reference type which has a given qualified name.
|
|
reference_type_def_sptr | lookup_reference_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a reference type from a translation unit.
|
|
reference_type_def_sptr | lookup_reference_type (const reference_type_def &t, const corpus &corp) |
| Look into a given corpus to find a reference type which has the same qualified name as a given reference type.
|
|
const reference_type_def_sptr | lookup_reference_type (const type_base_sptr &pointed_to_type, bool lvalue_reference, const translation_unit &tu) |
| Lookup a reference type from a translation unit.
|
|
const type_base_sptr | lookup_type (const interned_string &fqn, const translation_unit &tu) |
| Lookup a type in a translation unit.
|
|
type_base_sptr | lookup_type (const interned_string &n, const corpus &corp) |
| Look into a given corpus to find a type which has a given qualified name.
|
|
type_base_sptr | lookup_type (const string &fqn, const translation_unit &tu) |
| Lookup a type in a translation unit, starting from the global namespace.
|
|
type_base_sptr | lookup_type (const type_base &t, const corpus &corp) |
| Look into a given corpus to find a type.
|
|
type_base_sptr | lookup_type (const type_base_sptr &t, const corpus &corp) |
| Look into a given corpus to find a type.
|
|
const type_base_sptr | lookup_type (const type_base_sptr type, const translation_unit &tu) |
| Lookup a type from a translation unit.
|
|
type_base_sptr | lookup_type_from_translation_unit (const string &type_name, const string &tu_path, const corpus &corp) |
| Lookup a type from a given translation unit present in a give corpus.
|
|
const type_base_sptr | lookup_type_in_scope (const list< string > &comps, const scope_decl_sptr &scope) |
| lookup a type in a scope.
|
|
const type_base_sptr | lookup_type_in_scope (const string &fqn, const scope_decl_sptr &skope) |
| Lookup a type in a scope.
|
|
type_base_sptr | lookup_type_per_location (const interned_string &loc, const corpus &corp) |
| Lookup a type from a corpus, by its location.
|
|
type_base_sptr | lookup_type_through_scopes (const list< string > &fqn, const translation_unit &tu) |
| Lookup a type from a translation unit by walking its scopes in sequence and by looking into them.
|
|
const type_base_sptr | lookup_type_through_scopes (const type_base_sptr type, const translation_unit &tu) |
| Lookup a type from a translation unit by walking the scopes of the translation unit in sequence and looking into them.
|
|
type_base_sptr | lookup_type_through_translation_units (const string &qn, const corpus &abi_corpus) |
| Lookup a type definition in all the translation units of a given ABI corpus.
|
|
typedef_decl_sptr | lookup_typedef_type (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a typedef type which has a given qualified name.
|
|
typedef_decl_sptr | lookup_typedef_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a typedef type from a translation unit.
|
|
typedef_decl_sptr | lookup_typedef_type (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find a typedef type which has the same qualified name as a given typedef type.
|
|
typedef_decl_sptr | lookup_typedef_type (const string &type_name, const translation_unit &tu) |
| Lookup a typedef type from a translation unit.
|
|
typedef_decl_sptr | lookup_typedef_type (const typedef_decl &t, const corpus &corp) |
| Look into a given corpus to find a typedef type which has the same qualified name as a given typedef type.
|
|
typedef_decl_sptr | lookup_typedef_type_per_location (const interned_string &loc, const corpus &corp) |
| Lookup a typedef_decl from a corpus, by its location.
|
|
typedef_decl_sptr | lookup_typedef_type_per_location (const string &loc, const corpus &corp) |
| Lookup a typedef_decl from a corpus, by its location.
|
|
union_decl_sptr | lookup_union_type (const interned_string &type_name, const corpus &corp) |
| Look into a given corpus to find a union type which has a given qualified name.
|
|
union_decl_sptr | lookup_union_type (const interned_string &type_name, const translation_unit &tu) |
| Lookup a union type from a translation unit.
|
|
union_decl_sptr | lookup_union_type (const string &fqn, const translation_unit &tu) |
| Lookup a union type from a translation unit.
|
|
union_decl_sptr | lookup_union_type (const string &type_name, const corpus &corp) |
| Look into a given corpus to find a union type which has a given qualified name.
|
|
union_decl_sptr | lookup_union_type_per_location (const interned_string &loc, const corpus &corp) |
| Lookup a union type in a given corpus, from its location.
|
|
union_decl_sptr | lookup_union_type_per_location (const string &loc, const corpus &corp) |
| Lookup a union type in a given corpus, from its location.
|
|
const type_base_wptrs_type * | lookup_union_types (const interned_string &qualified_name, const corpus &corp) |
| Look into a given corpus to find the union type*s* that have a given qualified name.
|
|
const type_base_wptrs_type * | lookup_union_types (const string &qualified_name, const corpus &corp) |
| Look into a given corpus to find the union types that have a given qualified name.
|
|
const decl_base_sptr | lookup_var_decl_in_scope (const std::list< string > &comps, const scope_decl_sptr &skope) |
| lookup a var_decl in a scope.
|
|
const decl_base_sptr | lookup_var_decl_in_scope (const string &fqn, const scope_decl_sptr &skope) |
| Lookup a var_decl in a scope.
|
|
template<> |
void | mark_types_as_being_compared (const class_decl &l, const class_decl &r) |
| Mark a pair of class_decl types as being compared.
|
|
template<typename T > |
void | mark_types_as_being_compared (T &l, T &r) |
| Mark a pair of types as being compared.
|
|
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.
|
|
template<typename T > |
T * | maybe_get_canonical_type (T *t) |
| Get the canonical type of a given type T* as a T*.
|
|
void | maybe_update_types_lookup_map (const array_type_def::subrange_sptr &subrange_type) |
| Update the map that associates the fully qualified name of a type with the type itself.
|
|
void | maybe_update_types_lookup_map (const array_type_def_sptr &array_type) |
| Update the map that associates the fully qualified name of a type with the type itself.
|
|
void | maybe_update_types_lookup_map (const class_decl_sptr &class_type) |
| Update the map that associates the fully qualified name of a class type with the type itself.
|
|
void | maybe_update_types_lookup_map (const decl_base_sptr &decl) |
| Update the map that associates the fully qualified name of a type declaration with the type itself.
|
|
void | maybe_update_types_lookup_map (const enum_type_decl_sptr &enum_type) |
| Update the map that associates the fully qualified name of an enum type with the type itself.
|
|
void | maybe_update_types_lookup_map (const function_type_sptr &fn_type) |
| Update the map that associates the fully qualified name of a function type with the type itself.
|
|
void | maybe_update_types_lookup_map (const pointer_type_def_sptr &pointer_type) |
| Update the map that associates the fully qualified name of a pointer type with the type itself.
|
|
void | maybe_update_types_lookup_map (const ptr_to_mbr_type_sptr &ptr_to_member) |
| Update the map that associates the fully qualified name of a pointer-to-member type with the type itself.
|
|
void | maybe_update_types_lookup_map (const qualified_type_def_sptr &qualified_type) |
| Update the map that associates the fully qualified name of a qualified type with the type itself.
|
|
void | maybe_update_types_lookup_map (const reference_type_def_sptr &reference_type) |
| Update the map that associates the fully qualified name of a reference type with the type itself.
|
|
template<typename TypeKind > |
bool | maybe_update_types_lookup_map (const shared_ptr< TypeKind > &type, istring_type_base_wptrs_map_type &types_map, bool use_type_name_as_key=true) |
| Update the map that associates a fully qualified name of a given type to that type.
|
|
void | maybe_update_types_lookup_map (const type_base_sptr &type) |
| Update the map that associates the fully qualified name of a type with the type itself.
|
|
void | maybe_update_types_lookup_map (const type_decl_sptr &basic_type) |
| Update the map that associates the fully qualified name of a basic type with the type itself.
|
|
void | maybe_update_types_lookup_map (const typedef_decl_sptr &typedef_type) |
| Update the map that associates the fully qualified name of a typedef type with the type itself.
|
|
void | maybe_update_types_lookup_map (const union_decl_sptr &union_type) |
| Update the map that associates the fully qualified name of a union type with the type itself.
|
|
template<> |
bool | maybe_update_types_lookup_map< class_decl > (const class_decl_sptr &class_type, istring_type_base_wptrs_map_type &map, bool use_type_name_as_key) |
| This is the specialization for type class_decl of the function template:
|
|
template<> |
bool | maybe_update_types_lookup_map< function_type > (const function_type_sptr &type, istring_type_base_wptrs_map_type &types_map, bool) |
| This is the specialization for type function_type of the function template:
|
|
bool | member_function_has_vtable_offset (const function_decl &f) |
| Test if a virtual member function has a vtable offset set.
|
|
bool | odr_is_relevant (const type_or_decl_base &artifact) |
| By looking at the language of the TU a given ABI artifact belongs to, test if the ONE Definition Rule should apply.
|
|
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.
|
|
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.
|
|
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.
|
|
bool | operator!= (const decl_base_sptr &l, const decl_base_sptr &r) |
| Inequality operator of shared_ptr of decl_base.
|
|
bool | operator!= (const elf_symbol_sptr &lhs, const elf_symbol_sptr &rhs) |
| Inequality operator for smart pointers to elf_symbol.
|
|
bool | operator!= (const enum_type_decl_sptr &l, const enum_type_decl_sptr &r) |
| Inequality operator for enum_type_decl_sptr.
|
|
bool | operator!= (const function_decl::parameter_sptr &l, const function_decl::parameter_sptr &r) |
| Non-member inequality operator for function_decl::parameter.
|
|
bool | operator!= (const function_decl_sptr &l, const function_decl_sptr &r) |
| A deep inequality operator for smart pointers to functions.
|
|
bool | operator!= (const member_class_template_sptr &l, const member_class_template_sptr &r) |
| Inequality operator for the member_class_template type.
|
|
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.
|
|
bool | operator!= (const method_decl_sptr &l, const method_decl_sptr &r) |
| Inequality operator for method_decl_sptr.
|
|
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.
|
|
bool | operator!= (const qualified_type_def_sptr &l, const qualified_type_def_sptr &r) |
| Non-member inequality operator for qualified_type_def.
|
|
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.
|
|
bool | operator!= (const scope_decl_sptr &l, const scope_decl_sptr &r) |
| Inequality operator for scope_decl_sptr.
|
|
bool | operator!= (const translation_unit_sptr &l, const translation_unit_sptr &r) |
| A deep inequality operator for pointers to translation units.
|
|
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..
|
|
bool | operator!= (const type_decl_sptr &l, const type_decl_sptr &r) |
| Inequality operator for type_decl_sptr.
|
|
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.
|
|
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.
|
|
bool | operator!= (const std::string &l, const interned_string &r) |
|
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.
|
|
real_type::modifiers_type | operator& (real_type::modifiers_type l, real_type::modifiers_type r) |
| Bitwise AND operator for real_type::modifiers_type.
|
|
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.
|
|
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.
|
|
real_type::modifiers_type & | operator&= (real_type::modifiers_type &l, real_type::modifiers_type r) |
| Bitwise &= operator for real_type::modifiers_type.
|
|
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.
|
|
std::string | operator+ (const interned_string &s1, const std::string &s2) |
| Concatenation operator.
|
|
std::string | operator+ (const std::string &s1, const interned_string &s2) |
| Concatenation operator.
|
|
std::ostream & | operator<< (std::ostream &o, access_specifier a) |
| Streaming operator for class_decl::access_specifier.
|
|
std::ostream & | operator<< (std::ostream &o, decl_base::binding b) |
| Streaming operator for decl_base::binding.
|
|
std::ostream & | operator<< (std::ostream &o, decl_base::visibility v) |
| Streaming operator for the decl_base::visibility.
|
|
std::ostream & | operator<< (std::ostream &o, elf_symbol::binding b) |
| Serialize an instance of symbol_binding and stream it to a given output stream.
|
|
std::ostream & | operator<< (std::ostream &o, elf_symbol::type t) |
| Serialize an instance of symbol_type and stream it to a given output stream.
|
|
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.
|
|
std::ostream & | operator<< (std::ostream &o, qualified_type_def::CV cv) |
| Streaming operator for qualified_type_decl::CV.
|
|
std::ostream & | operator<< (std::ostream &o, const interned_string &s) |
| Streaming operator.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
bool | operator== (const elf_symbol_sptr &lhs, const elf_symbol_sptr &rhs) |
| Equality operator for smart pointers to elf_symbol.
|
|
bool | operator== (const enum_type_decl_sptr &l, const enum_type_decl_sptr &r) |
| Equality operator for enum_type_decl_sptr.
|
|
bool | operator== (const function_decl::parameter_sptr &l, const function_decl::parameter_sptr &r) |
| Non-member equality operator for function_decl::parameter.
|
|
bool | operator== (const function_decl_sptr &l, const function_decl_sptr &r) |
| A deep comparison operator for a shared pointer to function_decl.
|
|
bool | operator== (const member_class_template_sptr &l, const member_class_template_sptr &r) |
| Comparison operator for the member_class_template type.
|
|
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.
|
|
bool | operator== (const method_decl_sptr &l, const method_decl_sptr &r) |
| Equality operator for method_decl_sptr.
|
|
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.
|
|
bool | operator== (const qualified_type_def_sptr &l, const qualified_type_def_sptr &r) |
| Non-member equality operator for qualified_type_def.
|
|
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.
|
|
bool | operator== (const scope_decl_sptr &l, const scope_decl_sptr &r) |
| Equality operator for scope_decl_sptr.
|
|
bool | operator== (const translation_unit_sptr &l, const translation_unit_sptr &r) |
| A deep comparison operator for pointers to translation units.
|
|
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.
|
|
bool | operator== (const type_decl_sptr &l, const type_decl_sptr &r) |
| Equality operator for type_decl_sptr.
|
|
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.
|
|
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.
|
|
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.
|
|
bool | operator== (const std::string &l, const interned_string &r) |
| Equality operator.
|
|
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.
|
|
real_type::modifiers_type | operator| (real_type::modifiers_type l, real_type::modifiers_type r) |
| Bitwise OR operator for real_type::modifiers_type.
|
|
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.
|
|
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.
|
|
real_type::modifiers_type & | operator|= (real_type::modifiers_type &l, real_type::modifiers_type r) |
| Bitwise |= operator for real_type::modifiers_type.
|
|
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.
|
|
qualified_type_def::CV | operator~ (qualified_type_def::CV q) |
| Overloaded bitwise inverting operator for CV qualifiers.
|
|
real_type::modifiers_type | operator~ (real_type::modifiers_type l) |
| Bitwise one's complement operator for real_type::modifiers_type.
|
|
bool | parse_real_type (const string &str, real_type &type) |
| Parse a real type from a string.
|
|
hash_t | peek_hash_value (const type_or_decl_base &artefact) |
| Get the hash value associated to an IR node.
|
|
const type_base * | peel_array_type (const type_base *type) |
| Return the leaf element type of an array.
|
|
const type_base_sptr | peel_array_type (const type_base_sptr &type) |
| Return the leaf element type of an array.
|
|
type_base_sptr | peel_const_qualified_type (const qualified_type_def_sptr &q) |
| If a qualified type is const, then return its underlying type.
|
|
type_base * | peel_pointer_or_reference_type (const type_base *type, bool peel_qual_type) |
| Return the leaf underlying or pointed-to type node of a, pointer_type_def, reference_type_def or qualified_type_def type node.
|
|
const type_base * | peel_pointer_type (const type_base *type) |
| Return the leaf pointed-to type node of a pointer_type_def node.
|
|
type_base_sptr | peel_pointer_type (const type_base_sptr &type) |
| Return the leaf pointed-to type node of a pointer_type_def node.
|
|
type_base * | peel_qualified_or_typedef_type (const type_base *type) |
| Return the leaf underlying type of a qualified or typedef type.
|
|
type_base_sptr | peel_qualified_or_typedef_type (const type_base_sptr &t) |
| Return the leaf underlying type of a qualified or typedef type.
|
|
const type_base * | peel_qualified_type (const type_base *type) |
| Return the leaf underlying type of a qualified type.
|
|
const type_base_sptr | peel_qualified_type (const type_base_sptr &type) |
| Return the leaf underlying type of a qualified type.
|
|
const type_base * | peel_reference_type (const type_base *type) |
| Return the leaf pointed-to type node of a reference_type_def node.
|
|
type_base_sptr | peel_reference_type (const type_base_sptr &type) |
| Return the leaf pointed-to type node of a reference_type_def node.
|
|
type_base * | peel_typedef_pointer_or_reference_type (const type_base *type) |
| Return the leaf underlying or pointed-to type node of a typedef_decl, pointer_type_def or reference_type_def node.
|
|
type_base * | peel_typedef_pointer_or_reference_type (const type_base *type, bool peel_qual_type) |
| Return the leaf underlying or pointed-to type node of a typedef_decl, pointer_type_def or reference_type_def node.
|
|
type_base_sptr | peel_typedef_pointer_or_reference_type (const type_base_sptr type) |
| Return the leaf underlying or pointed-to type node of a typedef_decl, pointer_type_def, reference_type_def, or array_type_def node.
|
|
const type_base * | peel_typedef_type (const type_base *type) |
| Return the leaf underlying type node of a typedef_decl node.
|
|
type_base_sptr | peel_typedef_type (const type_base_sptr &type) |
| Return the leaf underlying type node of a typedef_decl node.
|
|
void | pop_composite_type_comparison_operands (const type_base &left, const type_base &right) |
| Pop a pair of operands from the stack of operands to the current type comparison.
|
|
void | push_composite_type_comparison_operands (const type_base &left, const type_base &right) |
| Push a pair of operands on the stack of operands of the current type comparison, during type canonicalization.
|
|
void | remove_decl_from_scope (decl_base_sptr decl) |
| Remove a given decl from its scope.
|
|
template<typename T > |
bool | return_comparison_result (T &l, T &r, bool value) |
| Return the result of the comparison of two (sub) types.
|
|
void | set_data_member_is_laid_out (var_decl_sptr m, bool l) |
| Set a flag saying if a data member is laid out.
|
|
void | set_data_member_offset (var_decl_sptr m, uint64_t o) |
| Set the offset of a data member into its containing class.
|
|
void | set_member_access_specifier (const decl_base_sptr &d, access_specifier a) |
| Sets the access specifier for a class member.
|
|
void | set_member_access_specifier (decl_base &d, access_specifier a) |
| Sets the access specifier for a class member.
|
|
void | set_member_function_is_const (const function_decl_sptr &f, bool is_const) |
| set the const-ness property of a member function.
|
|
void | set_member_function_is_const (function_decl &f, bool is_const) |
| set the const-ness property of a member function.
|
|
void | set_member_function_is_ctor (const function_decl_sptr &f, bool c) |
| Setter for the is_ctor property of the member function.
|
|
void | set_member_function_is_ctor (function_decl &f, bool c) |
| Setter for the is_ctor property of the member function.
|
|
void | set_member_function_is_dtor (const function_decl_sptr &f, bool d) |
| Set the destructor-ness property of a member function.
|
|
void | set_member_function_is_dtor (function_decl &f, bool d) |
| Set the destructor-ness property of a member function.
|
|
void | set_member_function_virtuality (const function_decl_sptr &fn, bool is_virtual, ssize_t voffset) |
| Set the virtual-ness of a member fcuntion.
|
|
void | set_member_function_virtuality (function_decl &fn, bool is_virtual, ssize_t voffset) |
| Set the virtual-ness of a member fcuntion.
|
|
void | set_member_function_virtuality (function_decl *fn, bool is_virtual, ssize_t voffset) |
| Set the virtual-ness of a member fcuntion.
|
|
void | set_member_is_static (const decl_base_sptr &d, bool s) |
| Sets the static-ness property of a class member.
|
|
void | set_member_is_static (decl_base &d, bool s) |
| Sets the static-ness property of a class member.
|
|
void | sort_types (const canonical_type_sptr_set_type &types, vector< type_base_sptr > &result) |
| Sort types in a hopefully stable manner.
|
|
void | sort_types_for_hash_computing_and_c14n (vector< type_base_sptr > &types) |
| Sort types right before hashing and canonicalizing them.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
void | strip_redundant_quals_from_underyling_types (const qualified_type_def_sptr &t) |
| Merge redundant qualifiers from a tree of qualified types.
|
|
type_base_sptr | strip_typedef (const type_base_sptr type) |
| Recursively returns the the underlying type of a typedef. The return type should not be a typedef of anything anymore.
|
|
decl_base_sptr | strip_useless_const_qualification (const qualified_type_def_sptr t) |
| Strip qualification from a qualified type, when it makes sense.
|
|
function_type_sptr | synthesize_function_type_from_translation_unit (const function_type &fn_type, translation_unit &tu) |
| In a translation unit, lookup the sub-types that make up a given function type and if the sub-types are all found, synthesize and return a function_type with them.
|
|
type_base_sptr | synthesize_type_from_translation_unit (const type_base_sptr &type, translation_unit &tu) |
| In a translation unit, lookup a given type or synthesize it if it's a qualified type.
|
|
string | translation_unit_language_to_string (translation_unit::language l) |
| Converts a translation_unit::language enumerator into a string.
|
|
template<typename T > |
bool | try_canonical_compare (const T *l, const T *r) |
| Compare two types by comparing their canonical types if present.
|
|
type_base * | type_has_non_canonicalized_subtype (type_base_sptr t) |
| Test if a type has sub-types that are non-canonicalized.
|
|
bool | type_has_sub_type_changes (const type_base_sptr t_v1, const type_base_sptr t_v2) |
| Tests if the change of a given type effectively comes from just its sub-types. That is, if the type has changed but its type name hasn't changed, then the change of the type mostly likely is a sub-type change.
|
|
bool | type_is_suitable_for_hash_computing (const type_base &t) |
| Test if we should attempt to compute a hash value for a given type.
|
|
type_base_sptr | type_or_void (const type_base_sptr t, const environment &env) |
| Return either the type given in parameter if it's non-null, or the void type.
|
|
bool | type_originates_from_corpus (type_base_sptr t, corpus_sptr &c) |
| Test if a type originates from a corpus.
|
|
bool | types_are_compatible (const decl_base_sptr d1, const decl_base_sptr d2) |
| Test if two types are equal modulo a typedef.
|
|
bool | types_are_compatible (const type_base_sptr type1, const type_base_sptr type2) |
| Test if two types are equal modulo a typedef.
|
|
bool | types_have_similar_structure (const type_base *first, const type_base *second, bool indirect_type) |
| Test if two types have similar structures, even though they are (or can be) different.
|
|
bool | types_have_similar_structure (const type_base_sptr &first, const type_base_sptr &second, bool indirect_type) |
| Test if two types have similar structures, even though they are (or can be) different.
|
|
template<> |
void | unmark_types_as_being_compared (const class_decl &l, const class_decl &r) |
| Mark a pair of class_decl types as being not compared anymore.
|
|
template<typename T > |
void | unmark_types_as_being_compared (T &l, T &r) |
| Mark a pair of types as being not compared anymore.
|
|
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.
|
|