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

#include <diagnostic-manager.h>

Collaboration diagram for ana::saved_diagnostic:

Public Member Functions

 saved_diagnostic (const state_machine *sm, const pending_location &ploc, tree var, const svalue *sval, state_machine::state_t state, std::unique_ptr< pending_diagnostic > d, unsigned idx)
 
bool operator== (const saved_diagnostic &other) const
 
void add_note (std::unique_ptr< pending_note > pn)
 
void add_event (std::unique_ptr< checker_event > event)
 
json::objectto_json () const
 
void dump_dot_id (pretty_printer *pp) const
 
void dump_as_dot_node (pretty_printer *pp) const
 
const feasibility_problemget_feasibility_problem () const
 
bool calc_best_epath (epath_finder *pf)
 
const exploded_pathget_best_epath () const
 
unsigned get_epath_length () const
 
void add_duplicate (saved_diagnostic *other)
 
unsigned get_num_dupes () const
 
unsigned get_index () const
 
bool supercedes_p (const saved_diagnostic &other) const
 
void add_any_saved_events (checker_path &dst_path)
 
void emit_any_notes () const
 
void maybe_add_sarif_properties (sarif_object &result_obj) const
 

Data Fields

const state_machinem_sm
 
const exploded_nodem_enode
 
const supernodem_snode
 
const gimplem_stmt
 
std::unique_ptr< stmt_finderm_stmt_finder
 
location_t m_loc
 
tree m_var
 
const svaluem_sval
 
state_machine::state_t m_state
 
std::unique_ptr< pending_diagnosticm_d
 
const exploded_edgem_trailing_eedge
 

Private Member Functions

 DISABLE_COPY_AND_ASSIGN (saved_diagnostic)
 

Private Attributes

unsigned m_idx
 
std::unique_ptr< exploded_pathm_best_epath
 
std::unique_ptr< feasibility_problemm_problem
 
auto_vec< const saved_diagnostic * > m_duplicates
 
auto_delete_vec< pending_notem_notes
 
auto_delete_vec< checker_eventm_saved_events
 

Detailed Description

A to-be-emitted diagnostic stored within diagnostic_manager.   

Constructor & Destructor Documentation

◆ saved_diagnostic()

ana::saved_diagnostic::saved_diagnostic ( const state_machine * sm,
const pending_location & ploc,
tree var,
const svalue * sval,
state_machine::state_t state,
std::unique_ptr< pending_diagnostic > d,
unsigned idx )

Member Function Documentation

◆ add_any_saved_events()

void ana::saved_diagnostic::add_any_saved_events ( checker_path & dst_path)

◆ add_duplicate()

void ana::saved_diagnostic::add_duplicate ( saved_diagnostic * other)

◆ add_event()

void ana::saved_diagnostic::add_event ( std::unique_ptr< checker_event > event)

◆ add_note()

void ana::saved_diagnostic::add_note ( std::unique_ptr< pending_note > pn)

◆ calc_best_epath()

bool ana::saved_diagnostic::calc_best_epath ( epath_finder * pf)

◆ DISABLE_COPY_AND_ASSIGN()

ana::saved_diagnostic::DISABLE_COPY_AND_ASSIGN ( saved_diagnostic )
private

◆ dump_as_dot_node()

void ana::saved_diagnostic::dump_as_dot_node ( pretty_printer * pp) const

◆ dump_dot_id()

void ana::saved_diagnostic::dump_dot_id ( pretty_printer * pp) const

◆ emit_any_notes()

void ana::saved_diagnostic::emit_any_notes ( ) const

◆ get_best_epath()

const exploded_path * ana::saved_diagnostic::get_best_epath ( ) const
inline

References m_best_epath.

◆ get_epath_length()

unsigned ana::saved_diagnostic::get_epath_length ( ) const

◆ get_feasibility_problem()

const feasibility_problem * ana::saved_diagnostic::get_feasibility_problem ( ) const
inline

References m_problem.

◆ get_index()

unsigned ana::saved_diagnostic::get_index ( ) const
inline

References m_idx.

◆ get_num_dupes()

unsigned ana::saved_diagnostic::get_num_dupes ( ) const
inline

References m_duplicates.

◆ maybe_add_sarif_properties()

void ana::saved_diagnostic::maybe_add_sarif_properties ( sarif_object & result_obj) const

◆ operator==()

bool ana::saved_diagnostic::operator== ( const saved_diagnostic & other) const

◆ supercedes_p()

bool ana::saved_diagnostic::supercedes_p ( const saved_diagnostic & other) const

◆ to_json()

json::object * ana::saved_diagnostic::to_json ( ) const

Field Documentation

◆ m_best_epath

std::unique_ptr<exploded_path> ana::saved_diagnostic::m_best_epath
private

Referenced by get_best_epath().

◆ m_d

std::unique_ptr<pending_diagnostic> ana::saved_diagnostic::m_d

◆ m_duplicates

auto_vec<const saved_diagnostic *> ana::saved_diagnostic::m_duplicates
private

Referenced by get_num_dupes().

◆ m_enode

const exploded_node* ana::saved_diagnostic::m_enode

◆ m_idx

unsigned ana::saved_diagnostic::m_idx
private

Referenced by get_index().

◆ m_loc

location_t ana::saved_diagnostic::m_loc

◆ m_notes

auto_delete_vec<pending_note> ana::saved_diagnostic::m_notes
private

◆ m_problem

std::unique_ptr<feasibility_problem> ana::saved_diagnostic::m_problem
private

Referenced by get_feasibility_problem().

◆ m_saved_events

auto_delete_vec<checker_event> ana::saved_diagnostic::m_saved_events
private

◆ m_sm

const state_machine* ana::saved_diagnostic::m_sm

◆ m_snode

const supernode* ana::saved_diagnostic::m_snode

◆ m_state

state_machine::state_t ana::saved_diagnostic::m_state

◆ m_stmt

const gimple* ana::saved_diagnostic::m_stmt

◆ m_stmt_finder

std::unique_ptr<stmt_finder> ana::saved_diagnostic::m_stmt_finder

◆ m_sval

const svalue* ana::saved_diagnostic::m_sval

◆ m_trailing_eedge

const exploded_edge* ana::saved_diagnostic::m_trailing_eedge

◆ m_var

tree ana::saved_diagnostic::m_var

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