GCC Middle and Back End API Reference
|
#include <program-point.h>
Public Member Functions | |
program_point (const function_point &fn_point, const call_string &call_string) | |
void | print (pretty_printer *pp, const format &f) const |
void | dump () const |
std::unique_ptr< json::object > | to_json () const |
hashval_t | hash () const |
bool | operator== (const program_point &other) const |
bool | operator!= (const program_point &other) const |
const function_point & | get_function_point () const |
const call_string & | get_call_string () const |
const supernode * | get_supernode () const |
function * | get_function () const |
function * | get_function_at_depth (unsigned depth) const |
tree | get_fndecl () const |
const gimple * | get_stmt () const |
location_t | get_location () const |
enum point_kind | get_kind () const |
const superedge * | get_from_edge () const |
unsigned | get_stmt_idx () const |
int | get_stack_depth () const |
bool | on_edge (exploded_graph &eg, const superedge *succ) |
void | push_to_call_stack (const supernode *caller, const supernode *callee) |
void | pop_from_call_stack () |
void | validate () const |
void | next_stmt () |
program_point | get_next () const |
Static Public Member Functions | |
static program_point | origin (const region_model_manager &mgr) |
static program_point | from_function_entry (const region_model_manager &mgr, const supergraph &sg, const function &fun) |
static program_point | before_supernode (const supernode *supernode, const superedge *from_edge, const call_string &call_string) |
static program_point | before_stmt (const supernode *supernode, unsigned stmt_idx, const call_string &call_string) |
static program_point | after_supernode (const supernode *supernode, const call_string &call_string) |
static program_point | empty () |
static program_point | deleted () |
static bool | effectively_intraprocedural_p (const program_point &point_a, const program_point &point_b) |
Private Member Functions | |
program_point (const function_point &fn_point) | |
Private Attributes | |
function_point | m_function_point |
const call_string * | m_call_string |
A class for representing a location within the program, including interprocedural information. This represents a fine-grained location within the supergraph (or within one of its nodes), along with a call string giving the interprocedural context.
|
inline |
Referenced by after_supernode(), before_stmt(), before_supernode(), deleted(), and empty().
|
inlineprivate |
|
inlinestatic |
References ana::function_point::after_supernode(), and program_point().
|
inlinestatic |
References ana::function_point::before_stmt(), and program_point().
|
inlinestatic |
References ana::function_point::before_supernode(), and program_point().
|
inlinestatic |
References ana::function_point::deleted(), and program_point().
void ana::program_point::dump | ( | ) | const |
|
static |
|
inlinestatic |
References ana::function_point::empty(), and program_point().
|
static |
|
inline |
References m_call_string.
Referenced by ana::exploded_graph::detect_infinite_recursion(), and get_stack_depth().
|
inline |
References function::decl, gcc_assert, get_function(), get_kind(), and ana::PK_ORIGIN.
Referenced by infinite_loop_diagnostic::add_final_event().
|
inline |
References ana::function_point::get_from_edge(), and m_function_point.
|
inline |
References ana::function_point::get_function(), and m_function_point.
Referenced by get_fndecl(), and ana::exploded_node::get_function().
function * ana::program_point::get_function_at_depth | ( | unsigned | depth | ) | const |
|
inline |
References m_function_point.
Referenced by ana::model_merger::get_function_point().
|
inline |
References ana::function_point::get_kind(), and m_function_point.
Referenced by get_fndecl(), ana::rewind_info_t::get_setjmp_point(), get_stack_depth(), and is_entrypoint_p().
|
inline |
References ana::function_point::get_location(), and m_function_point.
Referenced by starts_infinite_loop_p().
program_point ana::program_point::get_next | ( | ) | const |
|
inline |
References get_call_string(), get_kind(), ana::call_string::length(), and ana::PK_ORIGIN.
Referenced by infinite_loop_diagnostic::add_final_event(), and ana::exploded_node::get_stack_depth().
|
inline |
References ana::function_point::get_stmt(), and m_function_point.
Referenced by ana::exploded_node::get_stmt().
|
inline |
References ana::function_point::get_stmt_idx(), and m_function_point.
|
inline |
References ana::function_point::get_supernode(), and m_function_point.
Referenced by infinite_loop_diagnostic::add_final_event(), and ana::exploded_node::get_supernode().
hashval_t ana::program_point::hash | ( | ) | const |
Referenced by ana::eg_point_hash_map_traits::hash(), and ana::point_and_state::set_state().
|
inline |
References m_function_point, and ana::function_point::next_stmt().
bool ana::program_point::on_edge | ( | exploded_graph & | eg, |
const superedge * | succ ) |
|
inline |
|
inline |
References m_call_string, and m_function_point.
|
static |
void ana::program_point::pop_from_call_stack | ( | ) |
void ana::program_point::print | ( | pretty_printer * | pp, |
const format & | f ) const |
std::unique_ptr< json::object > ana::program_point::to_json | ( | ) | const |
void ana::program_point::validate | ( | ) | const |
|
private |
Referenced by get_call_string(), and operator==().
|
private |
Referenced by get_from_edge(), get_function(), get_function_point(), get_kind(), get_location(), get_stmt(), get_stmt_idx(), get_supernode(), next_stmt(), and operator==().