21#ifndef GCC_ANALYZER_DIAGNOSTIC_MANAGER_H
22#define GCC_ANALYZER_DIAGNOSTIC_MANAGER_H
37 std::unique_ptr<pending_diagnostic> d,
42 void add_note (std::unique_ptr<pending_note> pn);
43 void add_event (std::unique_ptr<checker_event> event);
45 std::unique_ptr<json::object>
to_json ()
const;
82 std::unique_ptr<pending_diagnostic>
m_d;
160 std::unique_ptr<json::object>
to_json ()
const;
167 std::unique_ptr<pending_diagnostic> d);
170 std::unique_ptr<pending_diagnostic> d);
Definition checker-path.h:32
Definition diagnostic-manager.h:154
void build_emission_path(const path_builder &pb, const exploded_path &epath, checker_path *emission_path) const
unsigned get_num_diagnostics() const
Definition diagnostic-manager.h:180
std::unique_ptr< json::object > to_json() const
void consolidate_conditions(checker_path *path) const
void add_event_on_final_node(const path_builder &pb, const exploded_node *final_enode, checker_path *emission_path, interesting_t *interest) const
bool add_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)
void update_for_unsuitable_sm_exprs(tree *expr) const
void add_note(std::unique_ptr< pending_note > pn)
const int m_verbosity
Definition diagnostic-manager.h:236
diagnostic_manager(logger *logger, engine *eng, int verbosity)
void emit_saved_diagnostics(const exploded_graph &eg)
void emit_saved_diagnostic(const exploded_graph &eg, saved_diagnostic &sd)
void prune_path(checker_path *path, const state_machine *sm, const svalue *sval, state_machine::state_t state) const
int m_num_disabled_diagnostics
Definition diagnostic-manager.h:237
bool significant_edge_p(const path_builder &pb, const exploded_edge &eedge) const
void prune_for_sm_diagnostic(checker_path *path, const state_machine *sm, const svalue *sval, state_machine::state_t state) const
const saved_diagnostic * get_saved_diagnostic(unsigned idx) const
Definition diagnostic-manager.h:188
void prune_for_sm_diagnostic(checker_path *path, const state_machine *sm, tree var, state_machine::state_t state) const
void add_event(std::unique_ptr< checker_event > event)
void finish_pruning(checker_path *path) const
void add_events_for_superedge(const path_builder &pb, const exploded_edge &eedge, checker_path *emission_path) const
auto_delete_vec< saved_diagnostic > m_saved_diagnostics
Definition diagnostic-manager.h:235
void add_events_for_eedge(const path_builder &pb, const exploded_edge &eedge, checker_path *emission_path, interesting_t *interest) const
engine * m_eng
Definition diagnostic-manager.h:234
bool add_diagnostic(const pending_location &ploc, std::unique_ptr< pending_diagnostic > d)
saved_diagnostic * get_saved_diagnostic(unsigned idx)
Definition diagnostic-manager.h:184
void prune_system_headers(checker_path *path) const
void prune_interproc_events(checker_path *path) const
engine * get_engine() const
Definition diagnostic-manager.h:158
Definition region-model.h:1241
Definition exploded-graph.h:381
Definition exploded-graph.h:791
Definition exploded-graph.h:203
Definition exploded-graph.h:947
Definition exploded-graph.h:975
Definition analyzer-logging.h:147
Definition analyzer-logging.h:34
Definition diagnostic-manager.h:31
void add_any_saved_events(checker_path &dst_path)
void add_duplicate(saved_diagnostic *other)
const state_machine * m_sm
Definition diagnostic-manager.h:73
void emit_any_notes() const
void maybe_add_sarif_properties(sarif_object &result_obj) const
std::unique_ptr< exploded_path > m_best_epath
Definition diagnostic-manager.h:89
const exploded_path * get_best_epath() const
Definition diagnostic-manager.h:56
const svalue * m_sval
Definition diagnostic-manager.h:80
void dump_dot_id(pretty_printer *pp) const
auto_delete_vec< pending_note > m_notes
Definition diagnostic-manager.h:93
const feasibility_problem * get_feasibility_problem() const
Definition diagnostic-manager.h:50
std::unique_ptr< feasibility_problem > m_problem
Definition diagnostic-manager.h:90
void add_note(std::unique_ptr< pending_note > pn)
state_machine::state_t m_state
Definition diagnostic-manager.h:81
const gimple * m_stmt
Definition diagnostic-manager.h:76
void add_event(std::unique_ptr< checker_event > event)
unsigned m_idx
Definition diagnostic-manager.h:88
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)
tree m_var
Definition diagnostic-manager.h:79
DISABLE_COPY_AND_ASSIGN(saved_diagnostic)
bool calc_best_epath(epath_finder *pf)
bool supercedes_p(const saved_diagnostic &other) const
void dump_as_dot_node(pretty_printer *pp) const
std::unique_ptr< pending_diagnostic > m_d
Definition diagnostic-manager.h:82
const exploded_edge * m_trailing_eedge
Definition diagnostic-manager.h:83
std::unique_ptr< json::object > to_json() const
auto_vec< const saved_diagnostic * > m_duplicates
Definition diagnostic-manager.h:92
auto_delete_vec< checker_event > m_saved_events
Definition diagnostic-manager.h:99
unsigned get_epath_length() const
bool operator==(const saved_diagnostic &other) const
const exploded_node * m_enode
Definition diagnostic-manager.h:74
unsigned get_num_dupes() const
Definition diagnostic-manager.h:60
const supernode * m_snode
Definition diagnostic-manager.h:75
std::unique_ptr< stmt_finder > m_stmt_finder
Definition diagnostic-manager.h:77
location_t m_loc
Definition diagnostic-manager.h:78
unsigned get_index() const
Definition diagnostic-manager.h:62
Definition exploded-graph.h:1033
Definition supergraph.h:235
Definition genmatch.cc:1496
Definition pretty-print.h:241
Definition diagnostic-format-sarif.h:84
union tree_node * tree
Definition coretypes.h:97
Definition access-diagram.h:30
Definition pending-diagnostic.h:38
Definition diagnostic-manager.h:108
exploded_node * m_enode
Definition diagnostic-manager.h:137
const gimple * m_stmt
Definition diagnostic-manager.h:139
pending_location(exploded_node *enode, const supernode *snode, const gimple *stmt, const stmt_finder *finder)
Definition diagnostic-manager.h:110
const stmt_finder * m_finder
Definition diagnostic-manager.h:140
location_t m_loc
Definition diagnostic-manager.h:141
const supernode * m_snode
Definition diagnostic-manager.h:138
pending_location(exploded_node *enode, const supernode *snode, location_t loc)
Definition diagnostic-manager.h:126
Definition genautomata.cc:669
#define gcc_assert(EXPR)
Definition system.h:814