|
GCC Middle and Back End API Reference
|


Public Member Functions | |
| diagnostic_graph (diagnostic_manager &) | |
| diagnostic_node * | add_node_with_id (std::string node_id, diagnostic_node *parent_node) |
| diagnostic_edge * | add_edge_with_label (const char *edge_id, diagnostic_node &src_node, diagnostic_node &dst_node, const char *label) |
| const char * | get_description () const |
| void | set_description (const char *desc) |
| void | set_description (std::string desc) |
| node * | get_node_by_id (const char *id) const |
| edge * | get_edge_by_id (const char *id) const |
| size_t | get_num_nodes () const |
| node & | get_node (size_t idx) const |
| size_t | get_num_edges () const |
| edge & | get_edge (size_t idx) const |
| void | dump () const |
| std::unique_ptr< json::object > | make_json_sarif_graph () const |
| std::unique_ptr< dot::graph > | make_dot_graph () const |
| void | add_node (std::unique_ptr< node > n) |
| void | add_edge (std::unique_ptr< edge > e) |
| void | add_edge (const char *id, node &src_node, node &dst_node, const char *label=nullptr) |
| std::unique_ptr< digraph > | clone () const |
| const char * | get_graph_kind () const |
| void | set_graph_kind (const char *) |
| const char * | get_property (const json::string_property &property) const |
| json::array * | get_property (const json::array_of_string_property &property) const |
| template<typename EnumType> | |
| EnumType | get_property (const json::enum_property< EnumType > &property) const |
| const json::value * | get_property (const json::json_property &property) const |
| void | set_property (const json::string_property &property, const char *utf8_value) |
| void | set_property (const json::integer_property &property, long value) |
| void | set_property (const json::bool_property &property, bool value) |
| template<typename EnumType> | |
| void | set_property (const json::enum_property< EnumType > &property, EnumType value) |
| void | set_property (const json::json_property &property, std::unique_ptr< json::value > value) |
| bool | maybe_get_property (const json::integer_property &property, long &out) const |
| tristate | get_property_as_tristate (const json::bool_property &property) const |
| json::object * | get_property_bag () const |
| json::object & | ensure_property_bag () |
| void | set_property_bag (std::unique_ptr< json::object > property_bag) |
Private Member Functions | |
| void | add_node_id (std::string node_id, node &new_node) |
| void | add_edge_id (std::string edge_id, edge &new_edge) |
| std::string | make_edge_id (const char *edge_id) |
Private Attributes | |
| std::unique_ptr< std::string > | m_description |
| std::map< std::string, node * > | m_id_to_node_map |
| std::map< std::string, edge * > | m_id_to_edge_map |
| std::vector< std::unique_ptr< node > > | m_nodes |
| std::vector< std::unique_ptr< edge > > | m_edges |
| size_t | m_next_edge_id_index |
| std::unique_ptr< json::object > | m_property_bag |
|
inline |
|
inherited |
References add_edge().
|
inlineinherited |
References gcc_assert, and m_edges.
Referenced by diagnostic_graph::add_edge_with_label().
|
inlineprivateinherited |
References edge, and m_id_to_edge_map.
| diagnostic_edge * diagnostic_graph::add_edge_with_label | ( | const char * | edge_id, |
| diagnostic_node & | src_node, | ||
| diagnostic_node & | dst_node, | ||
| const char * | label ) |
Public entrypoint.
References diagnostics::digraphs::digraph::add_edge(), and diagnostics::digraphs::edge::set_label().
|
inlineinherited |
References gcc_assert, and m_nodes.
Referenced by diagnostic_graph::add_node_with_id().
|
inlineprivateinherited |
References m_id_to_node_map.
| diagnostic_node * diagnostic_graph::add_node_with_id | ( | std::string | node_id, |
| diagnostic_node * | parent_node ) |
Public entrypoint.
References diagnostics::digraphs::node::add_child(), and diagnostics::digraphs::digraph::add_node().
References diagnostics::digraphs::object::get_property_bag(), m_edges, and m_nodes.
|
inherited |
References make_json_sarif_graph().
|
inherited |
References m_property_bag.
Referenced by set_property(), set_property(), set_property(), set_property(), and set_property().
|
inlineinherited |
References m_description.
Referenced by diagnostics::html_builder::add_graph().
|
inlineinherited |
References m_edges.
Referenced by state_diagram::state_diagram().
|
inlineinherited |
References m_id_to_edge_map.
|
inherited |
References diagnostics::digraphs::object::get_property().
|
inlineinherited |
References m_nodes.
Referenced by state_diagram::state_diagram().
|
inlineinherited |
References m_id_to_node_map.
|
inlineinherited |
References m_edges.
Referenced by state_diagram::state_diagram().
|
inlineinherited |
References m_nodes.
Referenced by state_diagram::state_diagram().
|
inherited |
Array-of-string properties.
References json::array::dyn_cast_array(), and m_property_bag.
|
inlineinherited |
References json::enum_traits< EnumType >::get_unknown_value(), and m_property_bag.
|
inherited |
json::value properties.
References m_property_bag.
|
inherited |
String properties.
References json::string::dyn_cast_string(), and m_property_bag.
Referenced by diagnostics::digraphs::digraph::get_graph_kind(), state_diagram::get_label_for_node(), state_diagram::on_node_in_table(), and state_diagram::starts_node_p().
|
inherited |
References json::JSON_FALSE, json::JSON_TRUE, m_property_bag, and tristate::unknown().
|
inlineinherited |
References m_property_bag.
Referenced by diagnostics::digraphs::digraph::clone(), diagnostics::digraphs::node::clone(), and diagnostics::copy_any_property_bag().
|
inherited |
Referenced by diagnostics::html_builder::add_graph().
|
privateinherited |
Utility function for edge ids: either use EDGE_ID, or generate a unique one for when we don't care about the name. Edges in SARIF "SHALL" have an id that's unique within the graph (SARIF 2.1.0 §3.41.2). This is so that graph traversals can refer to edges by id (SARIF 2.1.0's §3.43.2 edgeId property).
References candidate(), m_id_to_edge_map, and m_next_edge_id_index.
|
inherited |
References diagnostics::make_sarif_graph().
Referenced by diagnostics::html_builder::add_graph(), and dump().
|
inherited |
Integer properties.
References json::integer_number::dyn_cast_integer_number(), and m_property_bag.
|
inlineinherited |
References m_description.
|
inlineinherited |
References m_description.
|
inherited |
References diagnostics::digraphs::object::set_property().
|
inherited |
Bool properties.
References ensure_property_bag().
|
inlineinherited |
References ensure_property_bag().
|
inherited |
References ensure_property_bag().
|
inherited |
References ensure_property_bag().
|
inherited |
References ensure_property_bag().
Referenced by diagnostics::digraphs::digraph::set_graph_kind().
|
inlineinherited |
References m_property_bag.
|
privateinherited |
Referenced by get_description(), set_description(), and set_description().
|
privateinherited |
Referenced by add_edge(), clone(), get_edge(), and get_num_edges().
|
privateinherited |
Referenced by add_edge_id(), get_edge_by_id(), and make_edge_id().
|
privateinherited |
Referenced by add_node_id(), and get_node_by_id().
|
privateinherited |
Referenced by digraph(), and make_edge_id().
|
privateinherited |
Referenced by add_node(), clone(), get_node(), and get_num_nodes().
|
privateinherited |