GCC Middle and Back End API Reference
|
#include <exploded-graph.h>
Data Structures | |
struct | on_stmt_flags |
Public Types | |
enum | status { STATUS_WORKLIST , STATUS_PROCESSED , STATUS_MERGER , STATUS_BULK_MERGED } |
typedef eg_traits::edge_t | edge_t |
typedef eg_traits::dump_args_t | dump_args_t |
Static Public Member Functions | |
static const char * | status_to_str (enum status s) |
Data Fields | |
const int | m_index |
unsigned | m_num_processed_stmts |
auto_vec< edge_t * > | m_preds |
auto_vec< edge_t * > | m_succs |
Private Member Functions | |
DISABLE_COPY_AND_ASSIGN (exploded_node) | |
Private Attributes | |
const point_and_state | m_ps |
enum status | m_status |
auto_vec< const saved_diagnostic * > | m_saved_diagnostics |
An exploded_node is a unique, immutable <point, state> pair within the exploded_graph. Each exploded_node has a unique index within the graph (for ease of debugging).
|
inherited |
|
inherited |
ana::exploded_node::exploded_node | ( | const point_and_state & | ps, |
int | index ) |
Referenced by DISABLE_COPY_AND_ASSIGN().
|
inline |
References m_saved_diagnostics.
void ana::exploded_node::detect_leaks | ( | exploded_graph & | eg | ) |
|
private |
References exploded_node().
void ana::exploded_node::dump | ( | const extrinsic_state & | ext_state | ) | const |
void ana::exploded_node::dump | ( | FILE * | fp, |
const extrinsic_state & | ext_state ) const |
|
finaloverride |
|
pure virtualinherited |
void ana::exploded_node::dump_dot_id | ( | pretty_printer * | pp | ) | const |
void ana::exploded_node::dump_processed_stmts | ( | pretty_printer * | pp | ) | const |
void ana::exploded_node::dump_saved_diagnostics | ( | pretty_printer * | pp | ) | const |
void ana::exploded_node::dump_succs_and_preds | ( | FILE * | outf | ) | const |
void ana::exploded_node::dump_to_pp | ( | pretty_printer * | pp, |
const extrinsic_state & | ext_state ) const |
const char * ana::exploded_node::get_dot_fillcolor | ( | ) | const |
|
inline |
References ana::program_point::get_function(), and get_point().
Referenced by ana::exploded_graph::detect_infinite_recursion(), and ana::exploded_graph::find_previous_entry_to().
|
inline |
References m_saved_diagnostics.
|
inline |
References m_ps.
Referenced by infinite_loop_diagnostic::add_final_event(), infinite_recursion_diagnostic::add_function_entry_event(), ana::exploded_graph::detect_infinite_recursion(), get_function(), ana::rewind_info_t::get_setjmp_point(), get_stack_depth(), get_stmt(), get_supernode(), is_entrypoint_p(), and starts_infinite_loop_p().
|
inline |
References m_ps.
const gimple * ana::exploded_node::get_processed_stmt | ( | unsigned | idx | ) | const |
|
inline |
References m_ps.
|
inline |
References m_saved_diagnostics.
|
inline |
References get_point(), and ana::program_point::get_stack_depth().
Referenced by sufficiently_different_region_binding_p().
|
inline |
References m_ps.
Referenced by starts_infinite_loop_p(), sufficiently_different_p(), and sufficiently_different_region_binding_p().
|
inline |
References m_status.
Referenced by starts_infinite_loop_p().
|
inline |
References get_point(), and ana::program_point::get_stmt().
|
inline |
References get_point(), and ana::program_point::get_supernode().
Referenced by ana::exploded_graph::detect_infinite_recursion(), ana::worklist::key_t::get_scc_id(), is_entrypoint_p(), and infinite_loop::operator==().
|
inline |
References m_ps.
bool ana::exploded_node::on_edge | ( | exploded_graph & | eg, |
const superedge * | succ, | ||
program_point * | next_point, | ||
program_state * | next_state, | ||
uncertainty_t * | uncertainty ) |
void ana::exploded_node::on_longjmp | ( | exploded_graph & | eg, |
const gcall * | call, | ||
program_state * | new_state, | ||
region_model_context * | ctxt ) |
on_stmt_flags ana::exploded_node::on_stmt | ( | exploded_graph & | eg, |
const supernode * | snode, | ||
const gimple * | stmt, | ||
program_state * | state, | ||
uncertainty_t * | uncertainty, | ||
bool * | out_could_have_done_work, | ||
path_context * | path_ctxt ) |
void ana::exploded_node::on_stmt_post | ( | const gimple * | stmt, |
program_state * | state, | ||
bool | unknown_side_effects, | ||
region_model_context * | ctxt ) |
void ana::exploded_node::on_stmt_pre | ( | exploded_graph & | eg, |
const gimple * | stmt, | ||
program_state * | state, | ||
bool * | out_terminate_path, | ||
bool * | out_unknown_side_effects, | ||
region_model_context * | ctxt ) |
on_stmt_flags ana::exploded_node::replay_call_summaries | ( | exploded_graph & | eg, |
const supernode * | snode, | ||
const gcall * | call_stmt, | ||
program_state * | state, | ||
path_context * | path_ctxt, | ||
const function & | called_fn, | ||
per_function_data & | called_fn_data, | ||
region_model_context * | ctxt ) |
void ana::exploded_node::replay_call_summary | ( | exploded_graph & | eg, |
const supernode * | snode, | ||
const gcall * | call_stmt, | ||
program_state * | state, | ||
path_context * | path_ctxt, | ||
const function & | called_fn, | ||
call_summary * | summary, | ||
region_model_context * | ctxt ) |
|
inline |
References gcc_assert, m_status, and STATUS_WORKLIST.
|
static |
std::unique_ptr< json::object > ana::exploded_node::to_json | ( | const extrinsic_state & | ext_state | ) | const |
const int ana::exploded_node::m_index |
unsigned ana::exploded_node::m_num_processed_stmts |
|
private |
Referenced by get_point(), get_point_key(), get_ps_key(), get_state(), and hash().
|
private |
Referenced by add_diagnostic(), get_num_diagnostics(), and get_saved_diagnostic().
|
private |
Referenced by get_status(), and set_status().