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

#include <call-details.h>

Collaboration diagram for ana::call_details:

Public Member Functions

 call_details (const gcall *call, region_model *model, region_model_context *ctxt)
 
 call_details (const call_details &cd, region_model_context *ctxt)
 
region_modelget_model () const
 
region_model_managerget_manager () const
 
region_model_contextget_ctxt () const
 
loggerget_logger () const
 
uncertainty_tget_uncertainty () const
 
tree get_lhs_type () const
 
const regionget_lhs_region () const
 
bool maybe_set_lhs (const svalue *result) const
 
void set_any_lhs_with_defaults () const
 
unsigned num_args () const
 
bool arg_is_pointer_p (unsigned idx) const
 
bool arg_is_size_p (unsigned idx) const
 
bool arg_is_integral_p (unsigned idx) const
 
const gcallget_call_stmt () const
 
location_t get_location () const
 
tree get_arg_tree (unsigned idx) const
 
tree get_arg_type (unsigned idx) const
 
const svalueget_arg_svalue (unsigned idx) const
 
const regionderef_ptr_arg (unsigned idx) const
 
const charget_arg_string_literal (unsigned idx) const
 
tree get_fndecl_for_call () const
 
void dump_to_pp (pretty_printer *pp, bool simple) const
 
void dump (bool simple) const
 
const svalueget_or_create_conjured_svalue (const region *) const
 
tree lookup_function_attribute (const char *attr_name) const
 
void check_for_null_terminated_string_arg (unsigned arg_idx) const
 
const svaluecheck_for_null_terminated_string_arg (unsigned arg_idx, bool include_terminator, const svalue **out_sval) const
 
void complain_about_overlap (unsigned arg_idx_a, unsigned arg_idx_b, const svalue *num_bytes_read_sval) const
 

Private Attributes

const gcallm_call
 
region_modelm_model
 
region_model_contextm_ctxt
 
tree m_lhs_type
 
const regionm_lhs_region
 

Detailed Description

Helper class for handling calls to functions with known behavior.   

Constructor & Destructor Documentation

◆ call_details() [1/2]

ana::call_details::call_details ( const gcall * call,
region_model * model,
region_model_context * ctxt )

◆ call_details() [2/2]

ana::call_details::call_details ( const call_details & cd,
region_model_context * ctxt )

Member Function Documentation

◆ arg_is_integral_p()

bool ana::call_details::arg_is_integral_p ( unsigned idx) const
inline

References get_arg_type(), and INTEGRAL_TYPE_P.

◆ arg_is_pointer_p()

bool ana::call_details::arg_is_pointer_p ( unsigned idx) const
inline

References get_arg_type(), and POINTER_TYPE_P.

◆ arg_is_size_p()

bool ana::call_details::arg_is_size_p ( unsigned idx) const

◆ check_for_null_terminated_string_arg() [1/2]

void ana::call_details::check_for_null_terminated_string_arg ( unsigned arg_idx) const

◆ check_for_null_terminated_string_arg() [2/2]

const svalue * ana::call_details::check_for_null_terminated_string_arg ( unsigned arg_idx,
bool include_terminator,
const svalue ** out_sval ) const

◆ complain_about_overlap()

void ana::call_details::complain_about_overlap ( unsigned arg_idx_a,
unsigned arg_idx_b,
const svalue * num_bytes_read_sval ) const

◆ deref_ptr_arg()

const region * ana::call_details::deref_ptr_arg ( unsigned idx) const

◆ dump()

void ana::call_details::dump ( bool simple) const

◆ dump_to_pp()

void ana::call_details::dump_to_pp ( pretty_printer * pp,
bool simple ) const

◆ get_arg_string_literal()

const char * ana::call_details::get_arg_string_literal ( unsigned idx) const

◆ get_arg_svalue()

const svalue * ana::call_details::get_arg_svalue ( unsigned idx) const

◆ get_arg_tree()

tree ana::call_details::get_arg_tree ( unsigned idx) const

◆ get_arg_type()

tree ana::call_details::get_arg_type ( unsigned idx) const

◆ get_call_stmt()

const gcall * ana::call_details::get_call_stmt ( ) const
inline

◆ get_ctxt()

region_model_context * ana::call_details::get_ctxt ( ) const
inline

References m_ctxt.

Referenced by ana::call_summary_replay::get_ctxt().

◆ get_fndecl_for_call()

tree ana::call_details::get_fndecl_for_call ( ) const

◆ get_lhs_region()

const region * ana::call_details::get_lhs_region ( ) const
inline

References m_lhs_region.

◆ get_lhs_type()

tree ana::call_details::get_lhs_type ( ) const
inline

References m_lhs_type.

◆ get_location()

location_t ana::call_details::get_location ( ) const

◆ get_logger()

logger * ana::call_details::get_logger ( ) const

◆ get_manager()

region_model_manager * ana::call_details::get_manager ( ) const

◆ get_model()

region_model * ana::call_details::get_model ( ) const
inline

◆ get_or_create_conjured_svalue()

const svalue * ana::call_details::get_or_create_conjured_svalue ( const region * ) const

◆ get_uncertainty()

uncertainty_t * ana::call_details::get_uncertainty ( ) const

◆ lookup_function_attribute()

tree ana::call_details::lookup_function_attribute ( const char * attr_name) const

◆ maybe_set_lhs()

bool ana::call_details::maybe_set_lhs ( const svalue * result) const

◆ num_args()

unsigned ana::call_details::num_args ( ) const

◆ set_any_lhs_with_defaults()

void ana::call_details::set_any_lhs_with_defaults ( ) const

Field Documentation

◆ m_call

const gcall* ana::call_details::m_call
private

Referenced by get_call_stmt().

◆ m_ctxt

region_model_context* ana::call_details::m_ctxt
private

Referenced by get_ctxt().

◆ m_lhs_region

const region* ana::call_details::m_lhs_region
private

Referenced by get_lhs_region().

◆ m_lhs_type

tree ana::call_details::m_lhs_type
private

Referenced by get_lhs_type().

◆ m_model

region_model* ana::call_details::m_model
private

Referenced by get_model().


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