libabigail
|
Abstracts a reference type. More...
#include <abg-ir.h>
Public Member Functions | |
reference_type_def (const environment &env, bool lvalue, size_t size_in_bits, size_t alignment_in_bits, const location &locus) | |
Constructor of the reference_type_def type. More... | |
reference_type_def (const type_base_sptr pointed_to_type, bool lvalue, size_t size_in_bits, size_t alignment_in_bits, const location &locus) | |
Constructor of the reference_type_def type. More... | |
type_base_sptr | get_pointed_to_type () const |
virtual string | get_pretty_representation (bool internal=false, bool qualified_name=true) const |
Get the pretty representation of the current instance of reference_type_def. More... | |
virtual const interned_string & | get_qualified_name (bool internal=false) const |
Build, cache and return the qualified name of the current instance of the reference_type_def. Subsequent invocations of this function return the cached value. More... | |
virtual void | get_qualified_name (interned_string &qualified_name, bool internal=false) const |
Build and return the qualified name of the current instance of the reference_type_def. More... | |
bool | is_lvalue () const |
virtual bool | operator== (const decl_base &) const |
Equality operator of the reference_type_def type. More... | |
bool | operator== (const reference_type_def &) const |
Equality operator of the reference_type_def type. More... | |
virtual bool | operator== (const type_base &) const |
Equality operator of the reference_type_def type. More... | |
void | set_pointed_to_type (type_base_sptr &pointed_to_type) |
Setter of the pointed_to type of the current reference type. More... | |
virtual bool | traverse (ir_node_visitor &v) |
This implements the ir_traversable_base::traverse pure virtual function. More... | |
Public Member Functions inherited from type_base | |
type_base (const environment &e, size_t s, size_t a) | |
The constructor of type_base. More... | |
virtual size_t | get_alignment_in_bits () const |
Getter for the alignment of the type. More... | |
const interned_string & | get_cached_pretty_representation (bool internal=false) const |
Get the pretty representation of the current type. More... | |
type_base_sptr | get_canonical_type () const |
Getter of the canonical type of the current instance of type_base. More... | |
type_base * | get_naked_canonical_type () const |
Getter of the canonical type pointer. More... | |
virtual size_t | get_size_in_bits () const |
Getter for the size of the type. More... | |
virtual bool | operator!= (const type_base &) const |
Inequality operator. More... | |
virtual void | set_alignment_in_bits (size_t) |
Setter for the alignment of the type. More... | |
virtual void | set_size_in_bits (size_t) |
Setter for the size of the type. More... | |
Public Member Functions inherited from type_or_decl_base | |
type_or_decl_base (const environment &, enum type_or_decl_kind k=ABSTRACT_TYPE_OR_DECL) | |
Constructor of type_or_decl_base. More... | |
virtual | ~type_or_decl_base () |
The destructor of the type_or_decl_base type. More... | |
location & | get_artificial_location () const |
Getter of the artificial location of the artifact. More... | |
corpus * | get_corpus () |
Get the corpus this ABI artifact belongs to. More... | |
const corpus * | get_corpus () const |
Get the corpus this ABI artifact belongs to. More... | |
const environment & | get_environment () const |
Getter of the environment of the current ABI artifact. More... | |
bool | get_is_artificial () const |
Getter of the flag that says if the artefact is artificial. More... | |
translation_unit * | get_translation_unit () |
Get the translation_unit this ABI artifact belongs to. More... | |
const translation_unit * | get_translation_unit () const |
Get the translation_unit this ABI artifact belongs to. More... | |
bool | has_artificial_location () const |
Test if the current ABI artifact carries an artificial location. More... | |
void | set_artificial_location (const location &) |
Setter of the artificial location of the artificat. More... | |
void | set_is_artificial (bool) |
Setter of the flag that says if the artefact is artificial. More... | |
void | set_translation_unit (translation_unit *) |
Set the translation_unit this ABI artifact belongs to. More... | |
Public Member Functions inherited from traversable_base | |
virtual | ~traversable_base () |
Destructor of the traversable_base type. More... | |
Public Member Functions inherited from decl_base | |
decl_base (const environment &, const location &) | |
Constructor for the decl_base type. More... | |
decl_base (const environment &e, const interned_string &name, const location &locus, const interned_string &mangled_name=interned_string(), visibility vis=VISIBILITY_DEFAULT) | |
Constructor. More... | |
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. More... | |
virtual | ~decl_base () |
Destructor of the decl_base type. More... | |
const decl_base_sptr | get_definition_of_declaration () const |
If this decl_base is declaration-only, get its definition, if any. More... | |
const decl_base_sptr | get_earlier_declaration () const |
If this decl_base is a definition, get its earlier declaration. More... | |
bool | get_has_anonymous_parent () const |
Get the "has_anonymous_parent" flag of the current declaration. More... | |
virtual size_t | get_hash () const |
Get the hash of a decl. If the hash hasn't been computed yet, compute it ans store its value; otherwise, just return the hash. More... | |
bool | get_is_anonymous () const |
Test if the current declaration is anonymous. More... | |
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. More... | |
bool | get_is_in_public_symbol_table () const |
Test if the decl is defined in a ELF symbol table as a public symbol. More... | |
const interned_string & | get_linkage_name () const |
Getter for the mangled name. More... | |
const location & | get_location () const |
Get the location of a given declaration. More... | |
const decl_base * | get_naked_definition_of_declaration () const |
If this decl_base is declaration-only, get its definition, if any. More... | |
const interned_string & | get_name () const |
Getter for the name of the current decl. More... | |
typedef_decl_sptr | get_naming_typedef () const |
Getter for the naming typedef of the current decl. More... | |
const interned_string & | get_qualified_parent_name () const |
Return a copy of the qualified name of the parent of the current decl. More... | |
scope_decl * | get_scope () const |
Return the type containing the current decl, if any. More... | |
virtual const interned_string & | get_scoped_name () const |
Return the scoped name of the decl. More... | |
visibility | get_visibility () const |
Getter for the visibility of the decl. More... | |
virtual bool | operator!= (const decl_base &) const |
Inequality operator. More... | |
void | set_definition_of_declaration (const decl_base_sptr &) |
Set the definition of this declaration-only decl_base. More... | |
void | set_earlier_declaration (const decl_base_sptr &) |
set the earlier declaration of this decl_base definition. More... | |
void | set_is_anonymous (bool) |
Set the "is_anonymous" flag of the current declaration. More... | |
void | set_is_declaration_only (bool f) |
Set a flag saying if the enum_type_decl is a declaration-only enum_type_decl. More... | |
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). More... | |
virtual void | set_linkage_name (const string &m) |
Setter for the linkage name. More... | |
void | set_location (const location &l) |
Set the location for a given declaration. More... | |
void | set_name (const string &n) |
Setter for the name of the decl. More... | |
void | set_naming_typedef (const typedef_decl_sptr &) |
Set the naming typedef of the current instance of decl_base. More... | |
virtual void | set_scope (scope_decl *) |
Setter of the scope of the current decl. More... | |
void | set_visibility (visibility v) |
Setter for the visibility of the decl. More... | |
Protected Member Functions | |
virtual void | on_canonical_type_set () |
This function is automatically invoked whenever an instance of this type is canonicalized. More... | |
Protected Member Functions inherited from type_or_decl_base | |
bool | hashing_started () const |
Getter for the 'hashing_started' property. More... | |
void | hashing_started (bool) const |
Setter for the 'hashing_started' property. More... | |
enum type_or_decl_kind | kind () const |
Getter for the "kind" property of type_or_decl_base type. More... | |
void | kind (enum type_or_decl_kind) |
Setter for the "kind" property of type_or_decl_base type. More... | |
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. More... | |
const void * | runtime_type_instance () const |
Getter of the pointer to the runtime type sub-object of the current instance. More... | |
void | runtime_type_instance (void *) |
Setter of the pointer to the runtime type sub-object of the current instance. More... | |
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. More... | |
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. More... | |
Protected Member Functions inherited from traversable_base | |
traversable_base () | |
Default constructor of the traversable_base type. More... | |
bool | visiting () const |
This should returns false before and after the node has been visiting. During the visiting of the node (and of its children) this should return true. More... | |
void | visiting (bool f) |
The traversing code should be responsible of calling this, not the user code. More... | |
Protected Member Functions inherited from decl_base | |
decl_base (const decl_base &) | |
void | clear_qualified_name () |
Clear the qualified name of this decl. More... | |
context_rel * | get_context_rel () |
Getter for the context relationship. More... | |
const context_rel * | get_context_rel () const |
Getter for the context relationship. More... | |
const interned_string & | peek_qualified_name () const |
Getter for the qualified name. More... | |
const interned_string & | peek_temporary_qualified_name () const |
Getter of the temporary qualified name of the current declaration. More... | |
void | set_context_rel (context_rel *c) |
void | set_qualified_name (const interned_string &) const |
Setter for the qualified name. More... | |
void | set_temporary_qualified_name (const interned_string &) const |
Setter for the temporary qualified name of the current declaration. More... | |
Additional Inherited Members | |
Public Types inherited from decl_base | |
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... | |
Public Attributes inherited from type_base | |
priv * | priv_ |
Public Attributes inherited from decl_base | |
priv * | priv_ |
Protected Types inherited from type_or_decl_base | |
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... | |
reference_type_def | ( | const type_base_sptr | pointed_to, |
bool | lvalue, | ||
size_t | size_in_bits, | ||
size_t | align_in_bits, | ||
const location & | locus | ||
) |
Constructor of the reference_type_def type.
pointed_to | the pointed to type. |
lvalue | wether the reference is an lvalue reference. If false, the reference is an rvalue one. |
size_in_bits | the size of the type, in bits. |
align_in_bits | the alignment of the type, in bits. |
locus | the source location of the type. |
reference_type_def | ( | const environment & | env, |
bool | lvalue, | ||
size_t | size_in_bits, | ||
size_t | alignment_in_bits, | ||
const location & | locus | ||
) |
Constructor of the reference_type_def type.
This one creates a type that has no pointed-to type, temporarily. This is useful for cases where the underlying type is not yet available. It can be set later using reference_type_def::set_pointed_to_type().
env | the environment of the type. |
lvalue | wether the reference is an lvalue reference. If false, the reference is an rvalue one. |
size_in_bits | the size of the type, in bits. |
align_in_bits | the alignment of the type, in bits. |
locus | the source location of the type. |
|
virtual |
Get the pretty representation of the current instance of reference_type_def.
internal | set to true if the call is intended to get a representation of the decl (or type) for the purpose of canonical type comparison. This is mainly used in the function type_base::get_canonical_type_for(). |
In other words if the argument for this parameter is true then the call is meant for internal use (for technical use inside the library itself), false otherwise. If you don't know what this is for, then set it to false.
qualified_name | if true, names emitted in the pretty representation are fully qualified. |
Reimplemented from decl_base.
|
virtual |
Build, cache and return the qualified name of the current instance of the reference_type_def. Subsequent invocations of this function return the cached value.
internal | set to true if the call is intended for an internal use (for technical use inside the library itself), false otherwise. If you don't know what this is for, then set it to false. |
Reimplemented from decl_base.
|
virtual |
Build and return the qualified name of the current instance of the reference_type_def.
qn | output parameter. Is set to the newly-built qualified name of the current instance of reference_type_def. |
internal | set to true if the call is intended for an internal use (for technical use inside the library itself), false otherwise. If you don't know what this is for, then set it to false. |
Reimplemented from decl_base.
|
protectedvirtual |
This function is automatically invoked whenever an instance of this type is canonicalized.
It's an overload of the virtual type_base::on_canonical_type_set.
We put here what is thus meant to be executed only at the point of type canonicalization.
Reimplemented from type_base.
|
virtual |
Equality operator of the reference_type_def type.
o | the other instance of reference_type_def to compare against. |
Reimplemented from decl_base.
bool operator== | ( | const reference_type_def & | o | ) | const |
Equality operator of the reference_type_def type.
o | the other instance of reference_type_def to compare against. |
|
virtual |
Equality operator of the reference_type_def type.
o | the other instance of reference_type_def to compare against. |
Reimplemented from type_base.
void set_pointed_to_type | ( | type_base_sptr & | pointed_to_type | ) |
|
virtual |
This implements the ir_traversable_base::traverse pure virtual function.
v | the visitor used on the current instance. |
Reimplemented from decl_base.