21#ifndef GCC_ANALYZER_PENDING_DIAGNOSTIC_H
22#define GCC_ANALYZER_PENDING_DIAGNOSTIC_H
208 rich_location &rich_loc,
288 if (
get_kind () != other.get_kind ())
455 const gcall &call_stmt,
530template <
class Sub
class>
537 const Subclass &other = (
const Subclass &)base_other;
538 return *(
const Subclass*)
this == other;
554 virtual void emit ()
const = 0;
559 if (
get_kind () != other.get_kind ())
573template <
class Sub
class>
580 const Subclass &other = (
const Subclass &)base_other;
581 return *(
const Subclass*)
this == other;
Definition checker-path.h:32
Definition pending-diagnostic.h:205
const saved_diagnostic & m_sd
Definition pending-diagnostic.h:233
void add_rule(const diagnostics::metadata::rule &r)
Definition pending-diagnostic.h:227
diagnostics::metadata & m_metadata
Definition pending-diagnostic.h:235
bool warn(const char *,...) ATTRIBUTE_GCC_DIAG(2
rich_location & m_rich_loc
Definition pending-diagnostic.h:234
bool void inform(const char *,...) ATTRIBUTE_GCC_DIAG(2
void add_cwe(int cwe)
Definition pending-diagnostic.h:226
logger * m_logger
Definition pending-diagnostic.h:236
logger * get_logger() const
Definition pending-diagnostic.h:224
diagnostic_emission_context(const saved_diagnostic &sd, rich_location &rich_loc, diagnostics::metadata &metadata, logger *logger)
Definition pending-diagnostic.h:207
bool void location_t get_location() const
Definition pending-diagnostic.h:223
const pending_diagnostic & get_pending_diagnostic() const
Definition exploded-graph.h:335
Definition exploded-graph.h:206
Definition feasible-graph.h:84
Definition analyzer-logging.h:36
Definition pending-diagnostic.h:532
bool subclass_equal_p(const pending_diagnostic &base_other) const final override
Definition pending-diagnostic.h:534
Definition pending-diagnostic.h:258
virtual bool describe_origin_of_state(pretty_printer &, const evdesc::origin_of_state &)
Definition pending-diagnostic.h:347
virtual bool describe_final_event(pretty_printer &, const evdesc::final_event &)
Definition pending-diagnostic.h:419
virtual bool describe_return_of_state(pretty_printer &, const evdesc::return_of_state &)
Definition pending-diagnostic.h:378
virtual diagnostics::paths::event::meaning get_meaning_for_state_change(const evdesc::state_change &) const
Definition pending-diagnostic.h:334
virtual bool describe_use_of_state(pretty_printer &, const evdesc::use_of_state &)
Definition pending-diagnostic.h:404
virtual ~pending_diagnostic()
Definition pending-diagnostic.h:260
virtual void maybe_add_sarif_properties(diagnostics::sarif_object &) const
Definition pending-diagnostic.h:515
virtual bool use_of_uninit_p() const
Definition pending-diagnostic.h:280
virtual const program_state * get_final_state() const
Definition pending-diagnostic.h:478
virtual bool describe_call_with_state(pretty_printer &, const evdesc::call_with_state &)
Definition pending-diagnostic.h:362
virtual bool subclass_equal_p(const pending_diagnostic &other) const =0
virtual bool maybe_add_custom_events_for_eedge(const exploded_edge &, checker_path *)
Definition pending-diagnostic.h:445
virtual void mark_interesting_stuff(interesting_t *)
Definition pending-diagnostic.h:496
virtual bool describe_state_change(pretty_printer &, const evdesc::state_change &)
Definition pending-diagnostic.h:324
virtual void add_call_event(const exploded_edge &, const gcall &call_stmt, checker_path &emission_path, const state_transition_at_call *state_trans)
virtual void add_region_creation_events(const region *reg, tree capacity, const event_loc_info &loc_info, checker_path &emission_path)
virtual bool describe_copy_of_state(pretty_printer &, const evdesc::copy_of_state &)
Definition pending-diagnostic.h:391
virtual const char * get_kind() const =0
virtual bool check_valid_fpath_p(const feasible_node &) const
Definition pending-diagnostic.h:504
virtual bool terminate_path_p() const
Definition pending-diagnostic.h:270
virtual bool supercedes_p(const pending_diagnostic &other) const
Definition pending-diagnostic.h:488
bool equal_p(const pending_diagnostic &other) const
Definition pending-diagnostic.h:285
virtual void add_final_event(const state_machine *sm, const exploded_node *enode, const event_loc_info &loc_info, tree var, state_machine::state_t state, checker_path *emission_path)
virtual int get_controlling_option() const =0
static bool same_tree_p(tree t1, tree t2)
virtual bool emit(diagnostic_emission_context &)=0
virtual void add_function_entry_event(const exploded_edge &eedge, checker_path *emission_path, const state_transition_at_call *state_trans)
virtual location_t fixup_location(location_t loc, bool primary) const
Definition pending-diagnostic.h:575
bool subclass_equal_p(const pending_note &base_other) const final override
Definition pending-diagnostic.h:577
Definition pending-diagnostic.h:546
virtual ~pending_note()
Definition pending-diagnostic.h:548
virtual bool subclass_equal_p(const pending_note &other) const =0
virtual void emit() const =0
virtual const char * get_kind() const =0
bool equal_p(const pending_note &other) const
Definition pending-diagnostic.h:556
Definition program-state.h:224
Definition diagnostic-manager.h:79
Definition checker-event.h:417
const state_machine::state * state_t
Definition sm.h:63
Definition state-transition.h:99
Definition state-transition.h:126
diagnostics::paths::event_id_t get_src_event_id() const
Definition checker-event.h:931
Definition sarif-sink.h:151
Definition genmatch.cc:1506
Definition pretty-print.h:241
union tree_node * tree
Definition coretypes.h:97
#define ATTRIBUTE_GCC_DIAG(m, n)
Definition diagnostic-core.h:71
Definition pending-diagnostic.h:58
Definition access-diagram.h:30
diagnostic_event_id_t event_id_t
Definition event-id.h:66
poly_int< N, C > r
Definition poly-int.h:774
Definition pending-diagnostic.h:101
diagnostics::paths::event_id_t m_src_event_id
Definition pending-diagnostic.h:120
tree m_caller_fndecl
Definition pending-diagnostic.h:115
const state_transition_at_call * m_state_trans
Definition pending-diagnostic.h:119
tree m_callee_fndecl
Definition pending-diagnostic.h:116
call_with_state(tree caller_fndecl, tree callee_fndecl, tree expr, state_machine::state_t state, const state_transition_at_call *state_trans)
Definition pending-diagnostic.h:102
state_machine::state_t m_state
Definition pending-diagnostic.h:118
tree m_expr
Definition pending-diagnostic.h:117
Definition pending-diagnostic.h:149
copy_of_state(tree src_reg_expr, diagnostics::paths::event_id_t src_event_id, tree dst_reg_expr)
Definition pending-diagnostic.h:150
diagnostics::paths::event_id_t m_src_event_id
Definition pending-diagnostic.h:162
tree m_src_reg_expr
Definition pending-diagnostic.h:161
tree m_dst_reg_expr
Definition pending-diagnostic.h:163
Definition pending-diagnostic.h:185
state_machine::state_t m_state
Definition pending-diagnostic.h:192
final_event(tree expr, state_machine::state_t state, const warning_event &event)
Definition pending-diagnostic.h:186
const warning_event & m_event
Definition pending-diagnostic.h:193
tree m_expr
Definition pending-diagnostic.h:191
Definition pending-diagnostic.h:88
origin_of_state(tree dst_reg_expr)
Definition pending-diagnostic.h:89
tree m_dst_reg_expr
Definition pending-diagnostic.h:95
Definition pending-diagnostic.h:126
const state_transition_at_return * m_state_trans
Definition pending-diagnostic.h:142
diagnostics::paths::event_id_t m_src_event_id
Definition pending-diagnostic.h:143
tree m_callee_fndecl
Definition pending-diagnostic.h:140
state_machine::state_t m_state
Definition pending-diagnostic.h:141
tree m_caller_fndecl
Definition pending-diagnostic.h:139
return_of_state(tree caller_fndecl, tree callee_fndecl, state_machine::state_t state, const state_transition_at_return *state_trans)
Definition pending-diagnostic.h:127
Definition pending-diagnostic.h:63
diagnostics::paths::event_id_t m_event_id
Definition pending-diagnostic.h:81
tree m_expr
Definition pending-diagnostic.h:77
state_machine::state_t m_old_state
Definition pending-diagnostic.h:79
const state_change_event & m_event
Definition pending-diagnostic.h:82
bool is_global_p() const
Definition pending-diagnostic.h:75
state_change(tree expr, tree origin, state_machine::state_t old_state, state_machine::state_t new_state, diagnostics::paths::event_id_t event_id, const state_change_event &event)
Definition pending-diagnostic.h:64
state_machine::state_t m_new_state
Definition pending-diagnostic.h:80
tree m_origin
Definition pending-diagnostic.h:78
Definition pending-diagnostic.h:169
diagnostics::paths::event_id_t m_src_event_id
Definition pending-diagnostic.h:179
tree m_src_reg_expr
Definition pending-diagnostic.h:178
use_of_state(tree src_reg_expr, diagnostics::paths::event_id_t src_event_id)
Definition pending-diagnostic.h:170
Definition event-loc-info.h:29
Definition pending-diagnostic.h:42
std::vector< diagnostic_state > m_read_regions
Definition pending-diagnostic.h:50
void dump_to_pp(pretty_printer *pp, bool simple) const
void add_region_creation(const region *reg)
void add_read_region(const region *reg, std::string debug_desc)
auto_vec< const region * > m_region_creation
Definition pending-diagnostic.h:49
Definition genautomata.cc:669
#define gcc_assert(EXPR)
Definition system.h:817
#define NULL_TREE
Definition tree.h:318