GCC Middle and Back End API Reference
odr_name_hasher Struct Reference
Inheritance diagram for odr_name_hasher:
Collaboration diagram for odr_name_hasher:

Public Types

typedef union tree_node * compare_type
 
typedef odr_type_dvalue_type
 

Static Public Member Functions

static hashval_t hash (const odr_type_d *)
 
static bool equal (const odr_type_d *, const tree_node *)
 
static void remove (odr_type_d *)
 
static hashval_t hash (const value_type &)
 
static bool equal (const value_type &existing, const compare_type &candidate)
 
static void mark_deleted (odr_type_d *&)
 
static void mark_empty (odr_type_d *&)
 
static bool is_deleted (odr_type_d *)
 
static bool is_empty (odr_type_d *)
 

Static Public Attributes

static const bool empty_zero_p
 

Detailed Description

Hash used to unify ODR types based on their mangled name and for anonymous
namespace types.   

Member Typedef Documentation

◆ compare_type

◆ value_type

odr_type_d* pointer_hash< odr_type_d >::value_type
inherited

Member Function Documentation

◆ equal() [1/2]

bool odr_name_hasher::equal ( const odr_type_d * o1,
const tree_node * t2 )
inlinestatic
Compare types T1 and T2 and return true if they are
equivalent.   

References DECL_ASSEMBLER_NAME, gcc_checking_assert, odr_type_d::type, type_in_anonymous_namespace_p(), TYPE_MAIN_VARIANT, TYPE_NAME, and type_with_linkage_p().

◆ equal() [2/2]

bool pointer_hash< odr_type_d >::equal ( const value_type & existing,
const compare_type & candidate )
inlinestaticinherited

◆ hash() [1/2]

hashval_t odr_name_hasher::hash ( const odr_type_d * odr_type)
inlinestatic
Return the computed hashcode for ODR_TYPE.   

References hash_odr_name(), and odr_type_d::type.

◆ hash() [2/2]

hashval_t pointer_hash< odr_type_d >::hash ( const value_type & candidate)
inlinestaticinherited

◆ is_deleted()

bool pointer_hash< odr_type_d >::is_deleted ( odr_type_d * e)
inlinestaticinherited

◆ is_empty()

bool pointer_hash< odr_type_d >::is_empty ( odr_type_d * e)
inlinestaticinherited

◆ mark_deleted()

void pointer_hash< odr_type_d >::mark_deleted ( odr_type_d *& e)
inlinestaticinherited

◆ mark_empty()

void pointer_hash< odr_type_d >::mark_empty ( odr_type_d *& e)
inlinestaticinherited

◆ remove()

void odr_name_hasher::remove ( odr_type_d * v)
inlinestatic

Field Documentation

◆ empty_zero_p

const bool pointer_hash< odr_type_d >::empty_zero_p
staticinherited

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