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

Public Types

typedef const struct annotation_nodecompare_type
typedef annotation_nodevalue_type

Static Public Member Functions

static hashval_t hash (struct annotation_node *)
static bool equal (const struct annotation_node *, const struct annotation_node *)
static hashval_t hash (const value_type &)
static bool equal (const value_type &existing, const compare_type &candidate)
static void mark_deleted (annotation_node *&)
static void mark_empty (annotation_node *&)
static bool is_deleted (annotation_node *)
static bool is_empty (annotation_node *)
static void remove (annotation_node *&)
static void ggc_mx (annotation_node *&p)
static void ggc_maybe_mx (annotation_node *&p)
static void pch_nx (annotation_node *&p)

Static Public Attributes

static const bool empty_zero_p

Detailed Description

Hasher for btf_type_tag and btf_decl_tag annotation nodes.   

Member Typedef Documentation

◆ compare_type

◆ value_type

typedef annotation_node* pointer_hash< annotation_node >::value_type
inherited

Member Function Documentation

◆ equal() [1/2]

bool annotation_node_hasher::equal ( const struct annotation_node * node1,
const struct annotation_node * node2 )
static
Return whether two annotation nodes represent the same annotation and
can therefore share a DIE.  Beware of hash value collisions.   

References annotation_node::hash, annotation_node::name, annotation_node::next, and annotation_node::value.

◆ equal() [2/2]

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

◆ ggc_maybe_mx()

void ggc_remove< annotation_node * >::ggc_maybe_mx ( annotation_node * & p)
inlinestaticinherited

◆ ggc_mx()

void ggc_remove< annotation_node * >::ggc_mx ( annotation_node * & p)
inlinestaticinherited

◆ hash() [1/2]

hashval_t annotation_node_hasher::hash ( struct annotation_node * node)
static
Hash function for struct annotation_node.  The hash value is computed when
the annotation node is created based on the name, value and chain of any
further annotations on the same entity.   

◆ hash() [2/2]

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

◆ is_deleted()

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

◆ is_empty()

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

◆ mark_deleted()

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

◆ mark_empty()

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

◆ pch_nx()

void ggc_remove< annotation_node * >::pch_nx ( annotation_node * & p)
inlinestaticinherited

◆ remove()

void ggc_remove< annotation_node * >::remove ( annotation_node * & )
inlinestaticinherited

Field Documentation

◆ empty_zero_p

const bool pointer_hash< annotation_node >::empty_zero_p
staticinherited

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