libabigail
Classes | Public Member Functions | List of all members
class_decl::base_spec Class Reference

Abstraction of a base specifier in a class declaration. More...

#include <abg-ir.h>

Inheritance diagram for class_decl::base_spec:
[legend]

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. More...
 
 base_spec (const type_base_sptr &base, access_specifier a, long offset_in_bits=-1, bool is_virtual=false)
 Constructor for base_spec instances. More...
 
class_decl_sptr get_base_class () const
 Get the base class referred to by the current base class specifier. More...
 
virtual size_t get_hash () const
 Calculate the hash value for a class_decl::base_spec. More...
 
bool get_is_virtual () const
 Getter of the "is-virtual" proprerty of the base class specifier. More...
 
long get_offset_in_bits () const
 Getter of the offset of the base. More...
 
virtual bool operator== (const decl_base &) const
 Comparison operator for class_decl::base_spec. More...
 
virtual bool operator== (const member_base &) const
 Comparison operator for class_decl::base_spec. More...
 
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. More...
 
- Public Member Functions inherited from member_base
 member_base (access_specifier a, bool is_static=false)
 
access_specifier get_access_specifier () const
 Getter for the access specifier of this member. More...
 
bool get_is_static () const
 
void set_access_specifier (access_specifier a)
 Setter for the access specifier of this member. More...
 
void set_is_static (bool f)
 Set a flag saying if the parameter is static or not. 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...
 
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_stringget_linkage_name () const
 Getter for the mangled name. More...
 
const locationget_location () const
 Get the location of a given declaration. More...
 
const decl_baseget_naked_definition_of_declaration () const
 If this decl_base is declaration-only, get its definition, if any. More...
 
const interned_stringget_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...
 
virtual string get_pretty_representation (bool internal=false, bool qualified_name=true) const
 Get the pretty representatin of the current declaration. More...
 
virtual const interned_stringget_qualified_name (bool internal=false) const
 Return the qualified name of the decl. More...
 
virtual void get_qualified_name (interned_string &qualified_name, bool internal=false) const
 Compute the qualified name of the decl. More...
 
const interned_stringget_qualified_parent_name () const
 Return a copy of the qualified name of the parent of the current decl. More...
 
scope_declget_scope () const
 Return the type containing the current decl, if any. More...
 
virtual const interned_stringget_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...
 
- 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...
 
locationget_artificial_location () const
 Getter of the artificial location of the artifact. More...
 
corpusget_corpus ()
 Get the corpus this ABI artifact belongs to. More...
 
const corpusget_corpus () const
 Get the corpus this ABI artifact belongs to. More...
 
const environmentget_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_unitget_translation_unit ()
 Get the translation_unit this ABI artifact belongs to. More...
 
const translation_unitget_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...
 

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 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 , QUALIFIED_TYPE , POINTER_TYPE , REFERENCE_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...
 
- 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_relget_context_rel ()
 Getter for the context relationship. More...
 
const context_relget_context_rel () const
 Getter for the context relationship. More...
 
const interned_stringpeek_qualified_name () const
 Getter for the qualified name. More...
 
const interned_stringpeek_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...
 
- 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_baseoperator= (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 Attributes inherited from member_base
enum access_specifier access_
 
bool is_static_
 

Detailed Description

Abstraction of a base specifier in a class declaration.

Definition at line 4359 of file abg-ir.h.

Constructor & Destructor Documentation

◆ base_spec() [1/2]

base_spec ( const class_decl_sptr base,
access_specifier  a,
long  offset_in_bits = -1,
bool  is_virtual = false 
)

Constructor for base_spec instances.

Parameters
basethe base class to consider
athe access specifier of the base class.
offset_in_bitsif 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_virtualif true, means that the current base class is virtual in it's containing type.

Definition at line 23910 of file abg-ir.cc.

◆ base_spec() [2/2]

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.

Parameters
basethe base class to consider. Must be a pointer to an instance of class_decl
athe access specifier of the base class.
offset_in_bitsif 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_virtualif true, means that the current base class is virtual in it's containing type.

Definition at line 24002 of file abg-ir.cc.

Member Function Documentation

◆ get_base_class()

class_decl_sptr get_base_class ( ) const

Get the base class referred to by the current base class specifier.

Returns
the base class.

Definition at line 23930 of file abg-ir.cc.

◆ get_hash()

size_t get_hash ( ) const
virtual

Calculate the hash value for a class_decl::base_spec.

Returns
the hash value.

Reimplemented from decl_base.

Definition at line 23951 of file abg-ir.cc.

◆ get_is_virtual()

bool get_is_virtual ( ) const

Getter of the "is-virtual" proprerty of the base class specifier.

Returns
true iff this specifies a virtual base class.

Definition at line 23937 of file abg-ir.cc.

◆ get_offset_in_bits()

long get_offset_in_bits ( ) const

Getter of the offset of the base.

Returns
the offset of the base.

Definition at line 23944 of file abg-ir.cc.

◆ operator==() [1/2]

bool operator== ( const decl_base other) const
virtual

Comparison operator for class_decl::base_spec.

Parameters
otherthe instance of class_decl::base_spec to compare against.
Returns
true if the current instance of class_decl::base_spec equals other.

Reimplemented from decl_base.

Definition at line 24064 of file abg-ir.cc.

◆ operator==() [2/2]

bool operator== ( const member_base other) const
virtual

Comparison operator for class_decl::base_spec.

Parameters
otherthe instance of class_decl::base_spec to compare against.
Returns
true if the current instance of class_decl::base_spec equals other.

Reimplemented from member_base.

Definition at line 24083 of file abg-ir.cc.

◆ traverse()

bool traverse ( ir_node_visitor v)
virtual

Traverses an instance of class_decl::base_spec, visiting all the sub-types and decls that it might contain.

Parameters
vthe visitor that is used to visit every IR sub-node of the current node.
Returns
true if either
  • all the children nodes of the current IR node were traversed and the calling code should keep going with the traversing.
  • or the current IR node is already being traversed. Otherwise, returning false means that the calling code should not keep traversing the tree.

Reimplemented from decl_base.

Definition at line 23970 of file abg-ir.cc.


The documentation for this class was generated from the following files: