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
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.cc).
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

◆ class_info

struct vtv_graph_node* vtbl_map_node::class_info

◆ class_name

◆ is_used

bool vtbl_map_node::is_used

◆ next

struct vtbl_map_node* vtbl_map_node::next

◆ prev

struct vtbl_map_node * vtbl_map_node::prev

◆ registered

◆ uid

unsigned vtbl_map_node::uid

◆ vtbl_map_decl

tree vtbl_map_node::vtbl_map_decl

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