libabigail
Loading...
Searching...
No Matches
environment::priv Struct Reference

The private data of the environment type. More...

#include <abg-ir-priv.h>

Public Member Functions

bool allow_type_comparison_results_caching () const
 Check whether if caching of the sub-types comparison results during the invocation of the equal overloads for class and function types is in effect.
 
void allow_type_comparison_results_caching (bool f)
 Allow caching of the sub-types comparison results during the invocation of the equal overloads for class and function types.
 
template<typename T >
void cache_type_comparison_result (T &first, T &second, bool r)
 Cache the result of comparing two sub-types.
 
void clear_type_comparison_results_cache ()
 Clear the cache type comparison results.
 
bool do_log () const
 
void do_log (bool f)
 
template<typename T >
bool is_type_comparison_cached (T &first, T &second, bool &r)
 Retrieve the result of comparing two sub-types from the cache, if it was previously stored.
 
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.
 

Public Attributes

bool allow_type_comparison_results_caching_
 
optional< bool > analyze_exported_interfaces_only_
 
canonical_types_map_type canonical_types_
 
bool canonicalization_is_done_
 
bool canonicalization_started_
 
config config_
 
bool decl_only_class_equals_definition_
 
bool do_log_
 
vector< type_base_sptr > extra_live_types_
 
class_set_type left_classes_being_compared_
 
fn_set_type left_fn_types_being_compared_
 
vector< const type_base * > left_type_comp_operands_
 
class_set_type right_classes_being_compared_
 
fn_set_type right_fn_types_being_compared_
 
vector< const type_base * > right_type_comp_operands_
 
vector< type_base_sptr > sorted_canonical_types_
 
interned_string_pool string_pool_
 
type_comparison_result_type type_comparison_results_cache_
 
bool use_enum_binary_only_equality_
 
type_base_sptr variadic_marker_type_
 
type_base_sptr void_pointer_type_
 
type_base_sptr void_type_
 

Detailed Description

The private data of the environment type.

Definition at line 538 of file abg-ir-priv.h.

Constructor & Destructor Documentation

◆ priv()

priv ( )
inline

Definition at line 650 of file abg-ir-priv.h.

Member Function Documentation

◆ allow_type_comparison_results_caching() [1/2]

bool allow_type_comparison_results_caching ( ) const
inline

Check whether if caching of the sub-types comparison results during the invocation of the equal overloads for class and function types is in effect.

Returns
true iff caching of the sub-types comparison results during the invocation of the equal overloads for class and function types is in effect.

Definition at line 686 of file abg-ir-priv.h.

◆ allow_type_comparison_results_caching() [2/2]

void allow_type_comparison_results_caching ( bool f)
inline

Allow caching of the sub-types comparison results during the invocation of the equal overloads for class and function types.

Parameters
fif true, allow type comparison result caching.

Definition at line 675 of file abg-ir-priv.h.

◆ cache_type_comparison_result()

template<typename T >
void cache_type_comparison_result ( T & first,
T & second,
bool r )
inline

Cache the result of comparing two sub-types.

Parameters
firstthe first sub-type that has been compared. Its address is going to be stored in the cache.
secondthe second sub-type that has been compared. Its address is going to be stored in the cache.
rthe result of comparing first and second. This is going to be stored in the cache, as well as the addresses of first and second.

Definition at line 710 of file abg-ir-priv.h.

◆ clear_type_comparison_results_cache()

void clear_type_comparison_results_cache ( )
inline

Clear the cache type comparison results.

Definition at line 760 of file abg-ir-priv.h.

◆ do_log() [1/2]

bool do_log ( ) const
inline

Definition at line 694 of file abg-ir-priv.h.

◆ do_log() [2/2]

void do_log ( bool f)
inline

Definition at line 690 of file abg-ir-priv.h.

◆ is_type_comparison_cached()

template<typename T >
bool is_type_comparison_cached ( T & first,
T & second,
bool & r )
inline

Retrieve the result of comparing two sub-types from the cache, if it was previously stored.

Parameters
firstthe first sub-type to consider.
secondthe second sub-type to consider. The pair of addresses of {first, second} is going to be looked up in the cache. If it's present, then the associated result of the comparison of first against second is present as well, and is returned.
rthis is an out parameter which is set to the result of the comparison of first against second if the pair of addresses of {first, second} is present in the cache.
Returns
true iff the pair of addresses of {first, second} is present in the cache. In that case, the associated result of the comparison of first against second is returned in the argument of r.

Definition at line 742 of file abg-ir-priv.h.

◆ pop_composite_type_comparison_operands()

void pop_composite_type_comparison_operands ( const type_base * left,
const type_base * right )
inline

Pop a pair of operands from the stack of operands to the current type comparison.

For more information on this, please look at the description of the right_type_comp_operands_ data member.

Parameters
leftthe left-hand-side comparison operand we expect to pop from the top of the stack. If this doesn't match the operand found on the top of the stack, the function aborts.
rightthe right-hand-side comparison operand we expect to pop from the bottom of the stack. If this doesn't match the operand found on the top of the stack, the function aborts.

Definition at line 796 of file abg-ir-priv.h.

◆ push_composite_type_comparison_operands()

void push_composite_type_comparison_operands ( const type_base * left,
const type_base * right )
inline

Push a pair of operands on the stack of operands of the current type comparison, during type canonicalization.

For more information on this, please look at the description of the right_type_comp_operands_ data member.

Parameters
leftthe left-hand-side comparison operand to push.
rightthe right-hand-side comparison operand to push.

Definition at line 773 of file abg-ir-priv.h.

Member Data Documentation

◆ allow_type_comparison_results_caching_

bool allow_type_comparison_results_caching_

Definition at line 627 of file abg-ir-priv.h.

◆ analyze_exported_interfaces_only_

optional<bool> analyze_exported_interfaces_only_

Definition at line 629 of file abg-ir-priv.h.

◆ canonical_types_

canonical_types_map_type canonical_types_

Definition at line 541 of file abg-ir-priv.h.

◆ canonicalization_is_done_

bool canonicalization_is_done_

Definition at line 624 of file abg-ir-priv.h.

◆ canonicalization_started_

bool canonicalization_started_

Definition at line 623 of file abg-ir-priv.h.

◆ config_

config config_

Definition at line 540 of file abg-ir-priv.h.

◆ decl_only_class_equals_definition_

bool decl_only_class_equals_definition_

Definition at line 625 of file abg-ir-priv.h.

◆ do_log_

bool do_log_

Definition at line 628 of file abg-ir-priv.h.

◆ extra_live_types_

vector<type_base_sptr> extra_live_types_

Definition at line 562 of file abg-ir-priv.h.

◆ left_classes_being_compared_

class_set_type left_classes_being_compared_

Definition at line 550 of file abg-ir-priv.h.

◆ left_fn_types_being_compared_

fn_set_type left_fn_types_being_compared_

Definition at line 556 of file abg-ir-priv.h.

◆ left_type_comp_operands_

vector<const type_base*> left_type_comp_operands_

Definition at line 600 of file abg-ir-priv.h.

◆ right_classes_being_compared_

class_set_type right_classes_being_compared_

Definition at line 551 of file abg-ir-priv.h.

◆ right_fn_types_being_compared_

fn_set_type right_fn_types_being_compared_

Definition at line 557 of file abg-ir-priv.h.

◆ right_type_comp_operands_

vector<const type_base*> right_type_comp_operands_

Definition at line 601 of file abg-ir-priv.h.

◆ sorted_canonical_types_

vector<type_base_sptr> sorted_canonical_types_
mutable

Definition at line 542 of file abg-ir-priv.h.

◆ string_pool_

interned_string_pool string_pool_

Definition at line 563 of file abg-ir-priv.h.

◆ type_comparison_results_cache_

type_comparison_result_type type_comparison_results_cache_

Definition at line 561 of file abg-ir-priv.h.

◆ use_enum_binary_only_equality_

bool use_enum_binary_only_equality_

Definition at line 626 of file abg-ir-priv.h.

◆ variadic_marker_type_

type_base_sptr variadic_marker_type_

Definition at line 545 of file abg-ir-priv.h.

◆ void_pointer_type_

type_base_sptr void_pointer_type_

Definition at line 544 of file abg-ir-priv.h.

◆ void_type_

type_base_sptr void_type_

Definition at line 543 of file abg-ir-priv.h.


The documentation for this struct was generated from the following file: