libabigail
|
Abstraction of a base specifier in a class declaration. More...
#include <abg-ir.h>
Classes | |
struct | hash |
The hashing functor for class_decl::base_spec. More... | |
Public Member Functions | |
base_spec (const class_decl_sptr &base, access_specifier a, long offset_in_bits=-1, bool is_virtual=false) | |
Constructor for base_spec instances. | |
base_spec (const type_base_sptr &base, access_specifier a, long offset_in_bits=-1, bool is_virtual=false) | |
Constructor for base_spec instances. | |
class_decl_sptr | get_base_class () const |
Get the base class referred to by the current base class specifier. | |
bool | get_is_virtual () const |
Getter of the "is-virtual" proprerty of the base class specifier. | |
long | get_offset_in_bits () const |
Getter of the offset of the base. | |
virtual hash_t | hash_value () const |
Return the hash value of the current IR node. | |
virtual bool | operator== (const decl_base &) const |
Comparison operator for class_decl::base_spec. | |
virtual bool | operator== (const member_base &) const |
Comparison operator for class_decl::base_spec. | |
virtual bool | traverse (ir_node_visitor &) |
Traverses an instance of class_decl::base_spec, visiting all the sub-types and decls that it might contain. | |
![]() | |
member_base (access_specifier a, bool is_static=false) | |
access_specifier | get_access_specifier () const |
Getter for the access specifier of this member. | |
bool | get_is_static () const |
void | set_access_specifier (access_specifier a) |
Setter for the access specifier of this member. | |
void | set_is_static (bool f) |
Set a flag saying if the parameter is static or not. | |
![]() | |
decl_base (const environment &, const location &) | |
Constructor for the decl_base type. | |
decl_base (const environment &e, const interned_string &name, const location &locus, const interned_string &mangled_name=interned_string(), visibility vis=VISIBILITY_DEFAULT) | |
Constructor. | |
decl_base (const environment &e, const string &name, const location &locus, const string &mangled_name="", visibility vis=VISIBILITY_DEFAULT) | |
Constructor for the decl_base type. | |
virtual | ~decl_base () |
Destructor of the decl_base type. | |
const interned_string & | get_cached_pretty_representation (bool internal=false) const |
Get the pretty representation of the current decl. | |
context_rel * | get_context_rel () |
Getter for the context relationship. | |
const context_rel * | get_context_rel () const |
Getter for the context relationship. | |
const decl_base_sptr | get_definition_of_declaration () const |
If this decl_base is declaration-only, get its definition, if any. | |
const decl_base_sptr | get_earlier_declaration () const |
If this decl_base is a definition, get its earlier declaration. | |
bool | get_has_anonymous_parent () const |
Get the "has_anonymous_parent" flag of the current declaration. | |
bool | get_is_anonymous () const |
Test if the current declaration is anonymous. | |
bool | get_is_anonymous_or_has_anonymous_parent () const |
bool | get_is_declaration_only () const |
Test if a decl_base is a declaration-only decl. | |
bool | get_is_in_public_symbol_table () const |
Test if the decl is defined in a ELF symbol table as a public symbol. | |
const interned_string & | get_linkage_name () const |
Getter for the mangled name. | |
const location & | get_location () const |
Get the location of a given declaration. | |
const decl_base * | get_naked_definition_of_declaration () const |
If this decl_base is declaration-only, get its definition, if any. | |
virtual const interned_string & | get_name () const |
Getter for the name of the current decl. | |
typedef_decl_sptr | get_naming_typedef () const |
Getter for the naming typedef of the current decl. | |
virtual string | get_pretty_representation (bool internal=false, bool qualified_name=true) const |
Get the pretty representatin of the current declaration. | |
virtual const interned_string & | get_qualified_name (bool internal=false) const |
Return the qualified name of the decl. | |
virtual void | get_qualified_name (interned_string &qualified_name, bool internal=false) const |
Compute the qualified name of the decl. | |
const interned_string & | get_qualified_parent_name () const |
Return a copy of the qualified name of the parent of the current decl. | |
scope_decl * | get_scope () const |
Return the type containing the current decl, if any. | |
virtual const interned_string & | get_scoped_name () const |
Return the scoped name of the decl. | |
visibility | get_visibility () const |
Getter for the visibility of the decl. | |
virtual bool | operator!= (const decl_base &) const |
Inequality operator. | |
void | set_definition_of_declaration (const decl_base_sptr &) |
Set the definition of this declaration-only decl_base. | |
void | set_earlier_declaration (const decl_base_sptr &) |
set the earlier declaration of this decl_base definition. | |
void | set_is_anonymous (bool) |
Set the "is_anonymous" flag of the current declaration. | |
void | set_is_declaration_only (bool f) |
Set a flag saying if the enum_type_decl is a declaration-only enum_type_decl. | |
void | set_is_in_public_symbol_table (bool) |
Set the flag saying if this decl is from a symbol that is in a public symbols table, defined as public (global or weak). | |
virtual void | set_linkage_name (const string &m) |
Setter for the linkage name. | |
void | set_location (const location &l) |
Set the location for a given declaration. | |
virtual void | set_name (const string &n) |
Setter for the name of the decl. | |
void | set_naming_typedef (const typedef_decl_sptr &) |
Set the naming typedef of the current instance of decl_base. | |
virtual void | set_scope (scope_decl *) |
Setter of the scope of the current decl. | |
void | set_visibility (visibility v) |
Setter for the visibility of the decl. | |
![]() | |
type_or_decl_base (const environment &, enum type_or_decl_kind k=ABSTRACT_TYPE_OR_DECL) | |
Constructor of type_or_decl_base. | |
virtual | ~type_or_decl_base () |
The destructor of the type_or_decl_base type. | |
location & | get_artificial_location () const |
Getter of the artificial location of the artifact. | |
corpus * | get_corpus () |
Get the corpus this ABI artifact belongs to. | |
const corpus * | get_corpus () const |
Get the corpus this ABI artifact belongs to. | |
const environment & | get_environment () const |
Getter of the environment of the current ABI artifact. | |
bool | get_is_artificial () const |
Getter of the flag that says if the artefact is artificial. | |
translation_unit * | get_translation_unit () |
Get the translation_unit this ABI artifact belongs to. | |
const translation_unit * | get_translation_unit () const |
Get the translation_unit this ABI artifact belongs to. | |
bool | has_artificial_location () const |
Test if the current ABI artifact carries an artificial location. | |
enum type_or_decl_kind | kind () const |
Getter for the "kind" property of type_or_decl_base type. | |
void | set_artificial_location (const location &) |
Setter of the artificial location of the artificat. | |
void | set_is_artificial (bool) |
Setter of the flag that says if the artefact is artificial. | |
void | set_translation_unit (translation_unit *) |
Set the translation_unit this ABI artifact belongs to. | |
![]() | |
![]() | |
virtual | ~traversable_base () |
Destructor of the traversable_base type. | |
Additional Inherited Members | |
![]() | |
enum | binding { BINDING_NONE , BINDING_LOCAL , BINDING_GLOBAL , BINDING_WEAK } |
ELF binding. More... | |
enum | visibility { VISIBILITY_NONE , VISIBILITY_DEFAULT , VISIBILITY_PROTECTED , VISIBILITY_HIDDEN , VISIBILITY_INTERNAL } |
ELF visibility. More... | |
![]() | |
enum | type_or_decl_kind { ABSTRACT_TYPE_OR_DECL , ABSTRACT_DECL_BASE , ABSTRACT_SCOPE_DECL , GLOBAL_SCOPE_DECL , NAMESPACE_DECL , VAR_DECL , FUNCTION_DECL , FUNCTION_PARAMETER_DECL , METHOD_DECL , TEMPLATE_DECL , ABSTRACT_TYPE_BASE , ABSTRACT_SCOPE_TYPE_DECL , BASIC_TYPE , SUBRANGE_TYPE , QUALIFIED_TYPE , POINTER_TYPE , REFERENCE_TYPE , POINTER_TO_MEMBER_TYPE , ARRAY_TYPE , ENUM_TYPE , TYPEDEF_TYPE , CLASS_TYPE , UNION_TYPE , FUNCTION_TYPE , METHOD_TYPE } |
This is a bitmap type which instance is meant to contain the runtime type of a given ABI artifact. Bits of the identifiers of the type of a given artifact as well as the types it inherits from are to be set to 1. More... | |
![]() | |
priv * | priv_ |
![]() | |
std::unique_ptr< priv > | priv_ |
![]() | |
decl_base (const decl_base &) | |
void | clear_qualified_name () |
Clear the qualified name of this decl. | |
const interned_string & | peek_qualified_name () const |
Getter for the qualified name. | |
const interned_string & | peek_temporary_qualified_name () const |
Getter of the temporary qualified name of the current declaration. | |
void | set_context_rel (context_rel *c) |
void | set_qualified_name (const interned_string &) const |
Setter for the qualified name. | |
void | set_temporary_qualified_name (const interned_string &) const |
Setter for the temporary qualified name of the current declaration. | |
![]() | |
void | kind (enum type_or_decl_kind) |
Setter for the "kind" property of type_or_decl_base type. | |
type_or_decl_base & | operator= (const type_or_decl_base &) |
void * | runtime_type_instance () |
Getter of the pointer to the runtime type sub-object of the current instance. | |
const void * | runtime_type_instance () const |
Getter of the pointer to the runtime type sub-object of the current instance. | |
void | runtime_type_instance (void *) |
Setter of the pointer to the runtime type sub-object of the current instance. | |
void | set_hash_value (hash_t) const |
void * | type_or_decl_base_pointer () |
Getter of the pointer to either the type_base sub-object of the current instance if it's a type, or to the decl_base sub-object of the current instance if it's a decl. | |
const void * | type_or_decl_base_pointer () const |
Getter of the pointer to either the type_base sub-object of the current instance if it's a type, or to the decl_base sub-object of the current instance if it's a decl. | |
![]() | |
traversable_base () | |
Default constructor of the traversable_base type. | |
bool | visiting () const |
This should returns false before and after the node has been visiting. During the visiting of the node (and of its children) this should return true. | |
void | visiting (bool f) |
The traversing code should be responsible of calling this, not the user code. | |
![]() | |
enum access_specifier | access_ |
bool | is_static_ |
base_spec | ( | const class_decl_sptr & | base, |
access_specifier | a, | ||
long | offset_in_bits = -1, | ||
bool | is_virtual = false ) |
Constructor for base_spec instances.
base | the base class to consider |
a | the access specifier of the base class. |
offset_in_bits | if positive or null, represents the offset of the base in the layout of its containing type.. If negative, means that the current base is not laid out in its containing type. |
is_virtual | if true, means that the current base class is virtual in it's containing type. |
base_spec | ( | const type_base_sptr & | base, |
access_specifier | a, | ||
long | offset_in_bits = -1, | ||
bool | is_virtual = false ) |
Constructor for base_spec instances.
Note that this constructor is for clients that don't support RTTI and that have a base class of type_base, but of dynamic type class_decl.
base | the base class to consider. Must be a pointer to an instance of class_decl |
a | the access specifier of the base class. |
offset_in_bits | if positive or null, represents the offset of the base in the layout of its containing type.. If negative, means that the current base is not laid out in its containing type. |
is_virtual | if true, means that the current base class is virtual in it's containing type. |
class_decl_sptr get_base_class | ( | ) | const |
bool get_is_virtual | ( | ) | const |
long get_offset_in_bits | ( | ) | const |
|
virtual |
Return the hash value of the current IR node.
Note that upon the first invocation, this member functions computes the hash value and returns it. Subsequent invocations just return the hash value that was previously calculated.
Reimplemented from type_or_decl_base.
|
virtual |
Comparison operator for class_decl::base_spec.
other | the instance of class_decl::base_spec to compare against. |
other
. Reimplemented from decl_base.
|
virtual |
Comparison operator for class_decl::base_spec.
other | the instance of class_decl::base_spec to compare against. |
other
. Reimplemented from member_base.
|
virtual |
Traverses an instance of class_decl::base_spec, visiting all the sub-types and decls that it might contain.
v | the visitor that is used to visit every IR sub-node of the current node. |
Reimplemented from decl_base.