GCC Middle and Back End API Reference
vtbl_map_node Struct Reference

#include <vtable-verify.h>

Collaboration diagram for vtbl_map_node:

Data Fields

tree vtbl_map_decl
tree class_name
struct vtv_graph_nodeclass_info
unsigned uid
struct vtbl_map_nodenext
struct vtbl_map_nodeprev
register_table_type registered
bool is_used

Detailed Description

   This is the node used for our hashtable of vtable map variable
   information.  When we create a vtable map variable (var decl) we
   put it into one of these nodes; create a corresponding
   vtv_graph_node for our class hierarchy info and store that in this
   node; generate a unique (monotonically ascending) id for both the
   vtbl_map_node and the vtv_graph_node; and insert the node into two
   data structures (to make it easy to find in several different
   ways): 1). A hash table ("vtbl_map_hash" in vtable-verify.c).
   This gives us an easy way to check to see if we already have a node
   for the vtable map variable or not; and 2). An array (vector) of
   vtbl_map_nodes, where the array index corresponds to the unique id
   of the vtbl_map_node, which gives us an easy way to use bitmaps to
   represent and find the vtable map nodes.  

Field Documentation

struct vtv_graph_node* vtbl_map_node::class_info
tree vtbl_map_node::class_name
bool vtbl_map_node::is_used
struct vtbl_map_node* vtbl_map_node::next
struct vtbl_map_node * vtbl_map_node::prev
register_table_type vtbl_map_node::registered
unsigned vtbl_map_node::uid
tree vtbl_map_node::vtbl_map_decl

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