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: