|
| diagnostic_manager (logger *logger, engine *eng, int verbosity) |
|
engine * | get_engine () const |
|
std::unique_ptr< json::object > | to_json () 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) |
|
bool | add_diagnostic (const pending_location &ploc, std::unique_ptr< pending_diagnostic > d) |
|
void | add_note (std::unique_ptr< pending_note > pn) |
|
void | add_event (std::unique_ptr< checker_event > event) |
|
void | emit_saved_diagnostics (const exploded_graph &eg) |
|
void | emit_saved_diagnostic (const exploded_graph &eg, saved_diagnostic &sd) |
|
unsigned | get_num_diagnostics () const |
|
saved_diagnostic * | get_saved_diagnostic (unsigned idx) |
|
const saved_diagnostic * | get_saved_diagnostic (unsigned idx) const |
|
logger * | get_logger () const |
|
void | set_logger (logger *logger) |
|
void | log (const char *fmt,...) const ATTRIBUTE_GCC_DIAG(2 |
|
void void | start_log_line () const |
|
void | end_log_line () const |
|
void | enter_scope (const char *scope_name) |
|
void | exit_scope (const char *scope_name) |
|
pretty_printer * | get_logger_pp () const |
|
FILE * | get_logger_file () const |
|
|
void | build_emission_path (const path_builder &pb, const exploded_path &epath, checker_path *emission_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 |
|
void | add_events_for_eedge (const path_builder &pb, const exploded_edge &eedge, checker_path *emission_path, interesting_t *interest) const |
|
bool | significant_edge_p (const path_builder &pb, const exploded_edge &eedge) const |
|
void | add_events_for_superedge (const path_builder &pb, const exploded_edge &eedge, checker_path *emission_path) const |
|
void | prune_path (checker_path *path, const state_machine *sm, const svalue *sval, state_machine::state_t state) const |
|
void | prune_for_sm_diagnostic (checker_path *path, const state_machine *sm, tree var, state_machine::state_t state) const |
|
void | prune_for_sm_diagnostic (checker_path *path, const state_machine *sm, const svalue *sval, state_machine::state_t state) const |
|
void | update_for_unsuitable_sm_exprs (tree *expr) const |
|
void | prune_interproc_events (checker_path *path) const |
|
void | prune_system_headers (checker_path *path) const |
|
void | consolidate_conditions (checker_path *path) const |
|
void | finish_pruning (checker_path *path) const |
|
| DISABLE_COPY_AND_ASSIGN (log_user) |
|
A class with responsibility for saving pending diagnostics, so that
they can be emitted after the exploded_graph is complete.
This lets us de-duplicate diagnostics, and find the shortest path
for each similar diagnostic, potentially using edges that might
not have been found when each diagnostic was first saved.
This also lets us compute shortest_paths once, rather than
per-diagnostic.