GCC Middle and Back End API Reference
ana::program_point Class Reference

#include <program-point.h>

Collaboration diagram for ana::program_point:

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::objectto_json () const
 
hashval_t hash () const
 
bool operator== (const program_point &other) const
 
bool operator!= (const program_point &other) const
 
const function_pointget_function_point () const
 
const call_stringget_call_string () const
 
const supernodeget_supernode () const
 
functionget_function () const
 
functionget_function_at_depth (unsigned depth) const
 
tree get_fndecl () const
 
const gimpleget_stmt () const
 
location_t get_location () const
 
enum point_kind get_kind () const
 
const superedgeget_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_stringm_call_string
 

Detailed Description

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.   

Constructor & Destructor Documentation

◆ program_point() [1/2]

ana::program_point::program_point ( const function_point & fn_point,
const call_string & call_string )
inline

◆ program_point() [2/2]

ana::program_point::program_point ( const function_point & fn_point)
inlineprivate

Member Function Documentation

◆ after_supernode()

static program_point ana::program_point::after_supernode ( const supernode * supernode,
const call_string & call_string )
inlinestatic

◆ before_stmt()

static program_point ana::program_point::before_stmt ( const supernode * supernode,
unsigned stmt_idx,
const call_string & call_string )
inlinestatic

◆ before_supernode()

static program_point ana::program_point::before_supernode ( const supernode * supernode,
const superedge * from_edge,
const call_string & call_string )
inlinestatic

◆ deleted()

static program_point ana::program_point::deleted ( )
inlinestatic

◆ dump()

void ana::program_point::dump ( ) const

◆ effectively_intraprocedural_p()

static bool ana::program_point::effectively_intraprocedural_p ( const program_point & point_a,
const program_point & point_b )
static

◆ empty()

static program_point ana::program_point::empty ( )
inlinestatic

◆ from_function_entry()

static program_point ana::program_point::from_function_entry ( const region_model_manager & mgr,
const supergraph & sg,
const function & fun )
static

◆ get_call_string()

const call_string & ana::program_point::get_call_string ( ) const
inline

◆ get_fndecl()

tree ana::program_point::get_fndecl ( ) const
inline

◆ get_from_edge()

const superedge * ana::program_point::get_from_edge ( ) const
inline

◆ get_function()

function * ana::program_point::get_function ( ) const
inline

◆ get_function_at_depth()

function * ana::program_point::get_function_at_depth ( unsigned depth) const

◆ get_function_point()

const function_point & ana::program_point::get_function_point ( ) const
inline

◆ get_kind()

enum point_kind ana::program_point::get_kind ( ) const
inline

◆ get_location()

location_t ana::program_point::get_location ( ) const
inline

◆ get_next()

program_point ana::program_point::get_next ( ) const

◆ get_stack_depth()

int ana::program_point::get_stack_depth ( ) const
inline

◆ get_stmt()

const gimple * ana::program_point::get_stmt ( ) const
inline

◆ get_stmt_idx()

unsigned ana::program_point::get_stmt_idx ( ) const
inline

◆ get_supernode()

const supernode * ana::program_point::get_supernode ( ) const
inline

◆ hash()

hashval_t ana::program_point::hash ( ) const

◆ next_stmt()

void ana::program_point::next_stmt ( )
inline

◆ on_edge()

bool ana::program_point::on_edge ( exploded_graph & eg,
const superedge * succ )

◆ operator!=()

bool ana::program_point::operator!= ( const program_point & other) const
inline

◆ operator==()

bool ana::program_point::operator== ( const program_point & other) const
inline

References m_call_string, and m_function_point.

◆ origin()

static program_point ana::program_point::origin ( const region_model_manager & mgr)
static

◆ pop_from_call_stack()

void ana::program_point::pop_from_call_stack ( )

◆ print()

void ana::program_point::print ( pretty_printer * pp,
const format & f ) const

◆ push_to_call_stack()

void ana::program_point::push_to_call_stack ( const supernode * caller,
const supernode * callee )

◆ to_json()

std::unique_ptr< json::object > ana::program_point::to_json ( ) const

◆ validate()

void ana::program_point::validate ( ) const

Field Documentation

◆ m_call_string

const call_string* ana::program_point::m_call_string
private

Referenced by get_call_string(), and operator==().

◆ m_function_point


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