This is an abstraction of the set of resources necessary to manage several aspects of the internal representations of the Abigail library.
More...
|
| environment () |
| Default constructor of the environment type.
|
|
virtual | ~environment () |
| Destructor for the environment type.
|
|
bool | analyze_exported_interfaces_only () const |
| Getter for the property that controls if we are to restrict the analysis to the types that are only reachable from the exported interfaces only, or if the set of types should be more broad than that. Typically, we'd restrict the analysis to types reachable from exported interfaces only (stricto sensu, that would really be only the types that are part of the ABI of well designed libraries) for performance reasons.
|
|
void | analyze_exported_interfaces_only (bool f) |
| Setter for the property that controls if we are to restrict the analysis to the types that are only reachable from the exported interfaces only, or if the set of types should be more broad than that. Typically, we'd restrict the analysis to types reachable from exported interfaces only (stricto sensu, that would really be only the types that are part of the ABI of well designed libraries) for performance reasons.
|
|
bool | canonicalization_is_done () const |
| Test if the canonicalization of types created out of the current environment is done.
|
|
void | canonicalization_is_done (bool) |
| Set a flag saying if the canonicalization of types created out of the current environment is done or not.
|
|
bool | canonicalization_started () const |
| Getter of a flag saying if the canonicalization process has started or not.
|
|
void | canonicalization_started (bool) |
| Setter of a flag saying if the canonicalization process has started or not.
|
|
bool | decl_only_class_equals_definition () const |
| Getter of the "decl-only-class-equals-definition" flag.
|
|
void | decl_only_class_equals_definition (bool f) const |
| Setter of the "decl-only-class-equals-definition" flag.
|
|
type_base * | get_canonical_type (const char *name, unsigned index) |
| Get a given canonical type which has a given "string
representation".
|
|
const vector< type_base_sptr > * | get_canonical_types (const char *name) const |
| Get the vector of canonical types which have a given "string
representation".
|
|
canonical_types_map_type & | get_canonical_types_map () |
| Getter the map of canonical types.
|
|
const canonical_types_map_type & | get_canonical_types_map () const |
| Getter the map of canonical types.
|
|
const config & | get_config () const |
| Getter of the general configuration object.
|
|
const type_base_sptr & | get_variadic_parameter_type () const |
| Get a type_decl instance that represents a the type of a variadic function parameter. This node must be the only one representing a variadic parameter type in the system.
|
|
const type_base_sptr & | get_void_pointer_type () const |
| Getter of the "pointer-to-void" IR node that is shared across the ABI corpus. This node must be the only one representing a void pointer type in the system.
|
|
const type_base_sptr & | get_void_type () const |
| Get the unique type_decl that represents a "void" type for the current environment. This node must be the only one representing a void type in the system.
|
|
interned_string | intern (const string &) const |
| Do intern a string.
|
|
bool | is_variadic_parameter_type (const type_base *) const |
| Test if a type is a variadic parameter type as defined in the current environment.
|
|
bool | is_variadic_parameter_type (const type_base_sptr &) const |
| Test if a type is a variadic parameter type as defined in the current environment.
|
|
bool | is_void_pointer_type (const type_base *) const |
| Test if a given type is the same as the void pointer type of the environment.
|
|
bool | is_void_pointer_type (const type_base_sptr &) const |
| Test if a given type is the same as the void pointer type of the environment.
|
|
bool | is_void_type (const type_base *) const |
| Test if a given type is a void type as defined in the current environment.
|
|
bool | is_void_type (const type_base_sptr &) const |
| Test if a given type is a void type as defined in the current environment.
|
|
bool | user_set_analyze_exported_interfaces_only () const |
| Getter for a property that says if the user actually did set the analyze_exported_interfaces_only() property. If not, it means the default behaviour prevails.
|
|
This is an abstraction of the set of resources necessary to manage several aspects of the internal representations of the Abigail library.
An environment can be seen as the boundaries in which all related Abigail artifacts live. So before doing anything using this library, the first thing to create is, well, you know it now, an environment.
Note that the lifetime of environment objects must be longer than the lifetime of any other type in the Abigail system. So a given instance of environment must stay around as long as you are using libabigail. It's only when you are done using the library that you can de-allocate the environment instance.
Definition at line 147 of file abg-ir.h.
bool decl_only_class_equals_definition |
( |
| ) |
const |
Getter of the "decl-only-class-equals-definition" flag.
Usually, a declaration-only class named 'struct foo' compares equal to any class definition named "struct foo'. This is at
least true for C++.
In C, though, because there can be multiple definitions of 'struct
foo' in the binary, a declaration-only "struct foo" might be
considered to *NOT* resolve to any of the struct foo defined. In
that case, the declaration-only "struct foo" is considered
different from the definitions.
This flag controls the behaviour of the comparison of an
unresolved decl-only class against a definition of the same name.
If set to false, the the declaration equals the definition. If
set to false, then the decalration is considered different from
the declaration.
@return the value of the "decl-only-class-equals-definition" flag.
Definition at line 3446 of file abg-ir.cc.
void decl_only_class_equals_definition |
( |
bool | f | ) |
const |
Setter of the "decl-only-class-equals-definition" flag.
Usually, a declaration-only class named 'struct foo' compares equal to any class definition named "struct foo'. This is at
least true for C++.
In C, though, because there can be multiple definitions of 'struct
foo' in the binary, a declaration-only "struct foo" might be
considered to *NOT* resolve to any of the struct foo defined. In
that case, the declaration-only "struct foo" is considered
different from the definitions.
This flag controls the behaviour of the comparison of an
unresolved decl-only class against a definition of the same name.
If set to false, the the declaration equals the definition. If
set to false, then the decalration is considered different from
the declaration.
@param the new value of the "decl-only-class-equals-definition" flag.
Definition at line 3471 of file abg-ir.cc.