GCC Middle and Back End API Reference
state_diagram Class Reference
Inheritance diagram for state_diagram:
Collaboration diagram for state_diagram:

Data Structures

struct  pending_edge

Public Member Functions

 state_diagram (const diagnostics::digraphs::digraph &input_state_graph, const logical_locations::manager &logical_loc_mgr)
void print (writer &w) const final override
void add_stmt (std::unique_ptr< stmt > s)
void dump () const

Data Fields

std::unique_ptr< idm_id
stmt_list m_stmt_list

Private Types

enum class  style { h1 , h2 }

Private Member Functions

dot::id get_id_for_region (const char *region_id)
dot::id make_id (const diagnostics::digraphs::node &state_node, bool cluster)
bool starts_node_p (const diagnostics::digraphs::node &state_node)
const char * get_label_for_node (const diagnostics::digraphs::node &state_node)
void on_input_state_node (dot::subgraph &parent_subgraph, const diagnostics::digraphs::node &state_node)
void add_title_tr (const dot::id &id_of_dot_node, xml::printer &xp, int num_columns, const diagnostics::digraphs::node &state_node, std::string heading, enum style styl, enum state_node_properties::dynalloc_state_t dynalloc_state)
void on_node_in_table (const dot::id &id_of_dot_node, xml::printer &xp, const diagnostics::digraphs::node &state_node, int max_depth, int depth, int num_columns)
void push_src_text (xml::printer &xp)
void pop_src_text (xml::printer &xp)
void maybe_add_src_port (const dot::id &id_of_dot_node, xml::printer &xp, const diagnostics::digraphs::node &state_node)
void maybe_add_dst_port (const dot::id &id_of_dot_node, xml::printer &xp, const diagnostics::digraphs::node &state_node)

Private Attributes

const logical_locations::managerm_logical_loc_mgr
std::set< const digraphs::node * > m_src_nodes
std::set< const digraphs::node * > m_dst_nodes
std::map< const digraphs::node *, dot::node_idm_src_node_to_port_id
std::map< const digraphs::node *, dot::node_idm_dst_node_to_port_id

Member Enumeration Documentation

◆ style

enum class state_diagram::style
strongprivate
Enumerator
h1 
h2 

Constructor & Destructor Documentation

◆ state_diagram()

Member Function Documentation

◆ add_stmt()

void dot::graph::add_stmt ( std::unique_ptr< stmt > s)
inlineinherited

References m_stmt_list, and dot::s.

Referenced by state_diagram::state_diagram().

◆ add_title_tr()

void state_diagram::add_title_tr ( const dot::id & id_of_dot_node,
xml::printer & xp,
int num_columns,
const diagnostics::digraphs::node & state_node,
std::string heading,
enum style styl,
enum state_node_properties::dynalloc_state_t dynalloc_state )
inlineprivate

◆ dump()

void dot::ast_node::dump ( ) const
inherited

◆ get_id_for_region()

dot::id state_diagram::get_id_for_region ( const char * region_id)
inlineprivate

References gcc_assert.

◆ get_label_for_node()

◆ make_id()

dot::id state_diagram::make_id ( const diagnostics::digraphs::node & state_node,
bool cluster )
inlineprivate

◆ maybe_add_dst_port()

void state_diagram::maybe_add_dst_port ( const dot::id & id_of_dot_node,
xml::printer & xp,
const diagnostics::digraphs::node & state_node )
inlineprivate

◆ maybe_add_src_port()

void state_diagram::maybe_add_src_port ( const dot::id & id_of_dot_node,
xml::printer & xp,
const diagnostics::digraphs::node & state_node )
inlineprivate

◆ on_input_state_node()

◆ on_node_in_table()

void state_diagram::on_node_in_table ( const dot::id & id_of_dot_node,
xml::printer & xp,
const diagnostics::digraphs::node & state_node,
int max_depth,
int depth,
int num_columns )
inlineprivate

References xml::printer::add_text(), add_title_tr(), custom_sarif_properties::state_graphs::node::dynalloc_buffer, custom_sarif_properties::state_graphs::node::dynalloc_state_prop, custom_sarif_properties::state_graphs::node::dynamic_extents, custom_sarif_properties::state_graphs::node::element, custom_sarif_properties::state_graphs::node::field, custom_sarif_properties::state_graphs::node::freed, gcc_assert, gcc_unreachable, diagnostics::digraphs::node::get_child(), diagnostics::digraphs::node::get_logical_loc(), diagnostics::digraphs::node::get_num_children(), diagnostics::digraphs::object::get_property(), h1, h2, i, custom_sarif_properties::state_graphs::node::index, custom_sarif_properties::state_graphs::node::kind_prop, m_logical_loc_mgr, maybe_add_dst_port(), maybe_add_src_port(), custom_sarif_properties::state_graphs::node::name, custom_sarif_properties::state_graphs::node::nonnull, on_node_in_table(), custom_sarif_properties::state_graphs::node::other, custom_sarif_properties::state_graphs::node::padding, pop_src_text(), xml::printer::pop_tag(), pp_formatted_text(), pp_printf(), push_src_text(), xml::printer::push_tag(), xml::printer::set_attr(), custom_sarif_properties::state_graphs::node::stack, custom_sarif_properties::state_graphs::node::stack_frame, custom_sarif_properties::state_graphs::node::type, custom_sarif_properties::state_graphs::node::unchecked, custom_sarif_properties::state_graphs::node::unknown, custom_sarif_properties::state_graphs::node::value_str, and custom_sarif_properties::state_graphs::node::variable.

Referenced by on_input_state_node(), and on_node_in_table().

◆ pop_src_text()

void state_diagram::pop_src_text ( xml::printer & xp)
inlineprivate

References xml::printer::pop_tag().

Referenced by on_node_in_table().

◆ print()

void graph::print ( writer & w) const
finaloverridevirtualinherited

Implements dot::ast_node.

References m_id, m_stmt_list, and dot::w.

◆ push_src_text()

void state_diagram::push_src_text ( xml::printer & xp)
inlineprivate

◆ starts_node_p()

Field Documentation

◆ m_dst_node_to_port_id

std::map<const digraphs::node *, dot::node_id> state_diagram::m_dst_node_to_port_id
private

◆ m_dst_nodes

std::set<const digraphs::node *> state_diagram::m_dst_nodes
private

◆ m_id

std::unique_ptr<id> dot::graph::m_id
inherited

Referenced by graph(), graph(), and print().

◆ m_logical_loc_mgr

const logical_locations::manager& state_diagram::m_logical_loc_mgr
private

Referenced by on_node_in_table(), and state_diagram().

◆ m_src_node_to_port_id

std::map<const digraphs::node *, dot::node_id> state_diagram::m_src_node_to_port_id
private

◆ m_src_nodes

std::set<const digraphs::node *> state_diagram::m_src_nodes
private

◆ m_stmt_list

stmt_list dot::graph::m_stmt_list
inherited

Referenced by add_stmt(), and print().


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