#include <ana-state-to-diagnostic-state.h>
|
diagnostics::state_graphs::state_node_ref | create_and_add_state_node (const region ®) |
std::unique_ptr< diagnostics::digraphs::node > | make_state_node (diagnostics::state_graphs::node_kind kind, std::string id) |
std::unique_ptr< diagnostics::digraphs::node > | make_memspace_state_node (const region ®, enum diagnostics::state_graphs::node_kind kind) |
std::unique_ptr< diagnostics::digraphs::node > | create_state_node (const region ®) |
void | create_state_nodes_for_binding_cluster (const binding_cluster &cluster, bool create_all) |
std::unique_ptr< diagnostics::digraphs::node > | create_state_node_for_conc_bindings (const concrete_bindings_t &conc_bindings) |
bool | get_bit_range_within_base_region (const region ®, bit_range &out) |
void | populate_state_node_for_typed_region (diagnostics::state_graphs::state_node_ref, const region ®, const concrete_bindings_t &conc_bindings, bool create_all) |
void | set_attr_for_dynamic_extents (const region ®, diagnostics::state_graphs::state_node_ref) |
bool | show_child_state_node_for_child_region_p (const region ®, const concrete_bindings_t &conc_bindings, bool create_all) |
std::unique_ptr< diagnostics::digraphs::node > | create_state_node_for_svalue (const svalue *sval) |
std::string | make_node_id (const region ®) |
std::string | make_node_id (const char *prefix) |
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) |
◆ concrete_bindings_t
◆ analyzer_state_graph()
◆ add_edge() [1/2]
void digraph< GraphTraits >::add_edge |
( |
const char * | id, |
|
|
node & | src_node, |
|
|
node & | dst_node, |
|
|
const char * | label = nullptr ) |
|
inherited |
◆ add_edge() [2/2]
void diagnostics::digraphs::digraph::add_edge |
( |
std::unique_ptr< edge > | e | ) |
|
|
inlineinherited |
◆ add_edge_id()
void diagnostics::digraphs::digraph::add_edge_id |
( |
std::string | edge_id, |
|
|
edge & | new_edge ) |
|
inlineprivateinherited |
◆ add_node()
void diagnostics::digraphs::digraph::add_node |
( |
std::unique_ptr< node > | n | ) |
|
|
inlineinherited |
◆ add_node_id()
void diagnostics::digraphs::digraph::add_node_id |
( |
std::string | node_id, |
|
|
node & | new_node ) |
|
inlineprivateinherited |
◆ clone()
◆ create_and_add_state_node()
◆ create_state_node()
◆ create_state_node_for_conc_bindings()
◆ create_state_node_for_svalue()
◆ create_state_nodes_for_binding_cluster()
void ana::analyzer_state_graph::create_state_nodes_for_binding_cluster |
( |
const binding_cluster & | cluster, |
|
|
bool | create_all ) |
|
private |
◆ dump()
◆ get_attr()
const char * diagnostics::digraphs::object::get_attr |
( |
const char * | key_prefix, |
|
|
const char * | key ) const |
|
inherited |
◆ get_bit_range_within_base_region()
bool ana::analyzer_state_graph::get_bit_range_within_base_region |
( |
const region & | reg, |
|
|
bit_range & | out ) |
|
private |
◆ get_description()
const char * diagnostics::digraphs::digraph::get_description |
( |
| ) |
const |
|
inlineinherited |
◆ get_edge()
edge & diagnostics::digraphs::digraph::get_edge |
( |
size_t | idx | ) |
const |
|
inlineinherited |
◆ get_edge_by_id()
edge * diagnostics::digraphs::digraph::get_edge_by_id |
( |
const char * | id | ) |
const |
|
inlineinherited |
◆ get_node()
node & diagnostics::digraphs::digraph::get_node |
( |
size_t | idx | ) |
const |
|
inlineinherited |
◆ get_node_by_id()
node * diagnostics::digraphs::digraph::get_node_by_id |
( |
const char * | id | ) |
const |
|
inlineinherited |
◆ get_num_edges()
size_t diagnostics::digraphs::digraph::get_num_edges |
( |
| ) |
const |
|
inlineinherited |
◆ get_num_nodes()
size_t diagnostics::digraphs::digraph::get_num_nodes |
( |
| ) |
const |
|
inlineinherited |
◆ get_or_create_state_node()
◆ get_property_bag()
json::object * diagnostics::digraphs::object::get_property_bag |
( |
| ) |
const |
|
inlineinherited |
◆ make_dot_graph()
◆ make_edge_id()
std::string digraph< GraphTraits >::make_edge_id |
( |
const char * | edge_id | ) |
|
|
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.
◆ make_json_sarif_graph()
◆ make_memspace_state_node()
◆ make_node_id() [1/2]
std::string ana::analyzer_state_graph::make_node_id |
( |
const char * | prefix | ) |
|
|
private |
◆ make_node_id() [2/2]
std::string ana::analyzer_state_graph::make_node_id |
( |
const region & | reg | ) |
|
|
private |
◆ make_state_node()
◆ populate_state_node_for_typed_region()
◆ set_attr()
void diagnostics::digraphs::object::set_attr |
( |
const char * | key_prefix, |
|
|
const char * | key, |
|
|
const char * | value ) |
|
inherited |
◆ set_attr_for_dynamic_extents()
◆ set_description() [1/2]
void diagnostics::digraphs::digraph::set_description |
( |
const char * | desc | ) |
|
|
inlineinherited |
◆ set_description() [2/2]
void diagnostics::digraphs::digraph::set_description |
( |
std::string | desc | ) |
|
|
inlineinherited |
◆ set_json_attr()
void diagnostics::digraphs::object::set_json_attr |
( |
const char * | key_prefix, |
|
|
const char * | key, |
|
|
std::unique_ptr< json::value > | value ) |
|
inherited |
◆ set_property_bag()
void diagnostics::digraphs::object::set_property_bag |
( |
std::unique_ptr< json::object > | property_bag | ) |
|
|
inlineinherited |
◆ show_child_state_node_for_child_region_p()
◆ m_description
std::unique_ptr<std::string> diagnostics::digraphs::digraph::m_description |
|
privateinherited |
◆ m_edges
std::vector<std::unique_ptr<edge> > diagnostics::digraphs::digraph::m_edges |
|
privateinherited |
◆ m_ext_state
◆ m_id_to_edge_map
std::map<std::string, edge *> diagnostics::digraphs::digraph::m_id_to_edge_map |
|
privateinherited |
◆ m_id_to_node_map
std::map<std::string, node *> diagnostics::digraphs::digraph::m_id_to_node_map |
|
privateinherited |
◆ m_logical_loc_mgr
◆ m_mgr
◆ m_next_edge_id_index
size_t diagnostics::digraphs::digraph::m_next_edge_id_index |
|
privateinherited |
◆ m_next_id
unsigned ana::analyzer_state_graph::m_next_id |
|
private |
◆ m_nodes
std::vector<std::unique_ptr<node> > diagnostics::digraphs::digraph::m_nodes |
|
privateinherited |
◆ m_pending_edges
std::vector<pending_edge> ana::analyzer_state_graph::m_pending_edges |
|
private |
◆ m_property_bag
std::unique_ptr<json::object> diagnostics::digraphs::object::m_property_bag |
|
privateinherited |
◆ m_region_to_state_node_map
◆ m_state
◆ m_types_for_untyped_regions
std::map<const region *, tree> ana::analyzer_state_graph::m_types_for_untyped_regions |
|
private |
The documentation for this class was generated from the following file: