21#ifndef GCC_ANALYZER_CHECKER_EVENT_H
22#define GCC_ANALYZER_CHECKER_EVENT_H
501 pp_string (&pp,
"...catching exception here");
591 tree apparent_callee_fndecl,
592 tree apparent_caller_fndecl,
594 int stack_depth_adjustment)
597 apparent_caller_fndecl,
598 actual_depth + stack_depth_adjustment)),
620 const gcall &setjmp_call)
709 const gcall &throw_call)
729 const gcall &throw_call,
754 const gcall &throw_call,
void print_desc(pretty_printer &pp) const override
meaning get_meaning() const override
call_event(const exploded_edge &eedge, const event_loc_info &loc_info)
bool is_call_p() const final override
tree get_callee_fndecl() const
const supernode * m_dest_snode
Definition checker-event.h:526
tree get_caller_fndecl() const
const supernode * m_src_snode
Definition checker-event.h:525
Definition supergraph.h:400
tree m_type
Definition checker-event.h:505
catch_cfg_edge_event(const exploded_edge &eedge, const event_loc_info &loc_info, tree type)
Definition checker-event.h:488
void print_desc(pretty_printer &pp) const final override
Definition checker-event.h:496
meaning get_meaning() const override
cfg_edge_event(enum event_kind kind, const exploded_edge &eedge, const event_loc_info &loc_info)
const cfg_superedge & get_cfg_superedge() const
Definition supergraph.h:522
virtual void prepare_for_emission(checker_path *, pending_diagnostic *pd, diagnostic_event_id_t emission_id)
checker_event(enum event_kind kind, const event_loc_info &loc_info)
virtual bool is_return_p() const
Definition checker-event.h:129
tree m_effective_fndecl
Definition checker-event.h:151
diagnostic_event_id_t m_emission_id
Definition checker-event.h:155
enum event_kind get_kind() const
Definition checker-event.h:119
int get_stack_depth() const final override
Definition checker-event.h:102
location_t m_loc
Definition checker-event.h:149
const diagnostic_event_id_t * get_id_ptr() const
Definition checker-event.h:132
enum event_kind m_kind
Definition checker-event.h:147
tree m_original_fndecl
Definition checker-event.h:150
virtual bool is_function_entry_p() const
Definition checker-event.h:128
logical_location m_logical_loc
Definition checker-event.h:156
void set_location(location_t loc)
Definition checker-event.h:140
pending_diagnostic * m_pending_diagnostic
Definition checker-event.h:154
bool connect_to_next_event_p() const override
Definition checker-event.h:108
int get_original_stack_depth() const
Definition checker-event.h:122
location_t get_location() const final override
Definition checker-event.h:101
virtual bool is_call_p() const
Definition checker-event.h:127
tree get_fndecl() const
Definition checker-event.h:120
void maybe_add_sarif_properties(sarif_builder &, sarif_object &thread_flow_loc_obj) const override
int m_effective_depth
Definition checker-event.h:153
int m_original_depth
Definition checker-event.h:152
diagnostic_thread_id_t get_thread_id() const final override
Definition checker-event.h:109
meaning get_meaning() const override
logical_location get_logical_location() const final override
Definition checker-event.h:103
void dump(pretty_printer *pp) const
Definition checker-path.h:32
custom_event(const event_loc_info &loc_info)
Definition checker-event.h:189
char * m_desc
Definition checker-event.h:180
~debug_event()
Definition checker-event.h:172
debug_event(const event_loc_info &loc_info, const char *desc)
Definition checker-event.h:166
void print_desc(pretty_printer &) const final override
end_cfg_edge_event(const exploded_edge &eedge, const event_loc_info &loc_info)
Definition checker-event.h:470
void print_desc(pretty_printer &pp) const final override
Definition checker-event.h:476
end_consolidated_cfg_edges_event(const event_loc_info &loc_info)
Definition checker-event.h:573
void print_desc(pretty_printer &pp) const final override
Definition checker-event.h:578
tree m_type
Definition checker-event.h:741
void print_desc(pretty_printer &pp) const final override
bool m_is_rethrow
Definition checker-event.h:742
explicit_throw_event(const event_loc_info &loc_info, const exploded_node *enode, const gcall &throw_call, tree type, bool is_rethrow)
Definition checker-event.h:727
Definition exploded-graph.h:394
Definition exploded-graph.h:203
function_entry_event(const program_point &dst_point)
meaning get_meaning() const override
bool is_function_entry_p() const final override
Definition checker-event.h:348
void print_desc(pretty_printer &pp) const override
function_entry_event(const event_loc_info &loc_info)
Definition checker-event.h:338
meaning get_meaning() const override
void print_desc(pretty_printer &) const final override
inlined_call_event(location_t loc, tree apparent_callee_fndecl, tree apparent_caller_fndecl, int actual_depth, int stack_depth_adjustment)
Definition checker-event.h:590
tree m_apparent_callee_fndecl
Definition checker-event.h:609
tree m_apparent_caller_fndecl
Definition checker-event.h:610
Definition pending-diagnostic.h:190
~precanned_custom_event()
Definition checker-event.h:206
char * m_desc
Definition checker-event.h:214
void print_desc(pretty_printer &) const final override
precanned_custom_event(const event_loc_info &loc_info, const char *desc)
Definition checker-event.h:200
Definition program-point.h:175
Definition program-state.h:221
tree m_capacity
Definition checker-event.h:310
void print_desc(pretty_printer &pp) const final override
region_creation_event_allocation_size(tree capacity, const event_loc_info &loc_info)
Definition checker-event.h:301
void print_desc(pretty_printer &pp) const final override
region_creation_event_capacity(tree capacity, const event_loc_info &loc_info)
Definition checker-event.h:280
tree m_capacity
Definition checker-event.h:291
region_creation_event_debug(const region *reg, tree capacity, const event_loc_info &loc_info)
Definition checker-event.h:319
tree m_capacity
Definition checker-event.h:330
const region * m_reg
Definition checker-event.h:329
void print_desc(pretty_printer &pp) const final override
enum memory_space m_mem_space
Definition checker-event.h:270
void print_desc(pretty_printer &pp) const final override
region_creation_event_memory_space(enum memory_space mem_space, const event_loc_info &loc_info)
Definition checker-event.h:260
region_creation_event(const event_loc_info &loc_info)
const supernode * m_dest_snode
Definition checker-event.h:543
return_event(const exploded_edge &eedge, const event_loc_info &loc_info)
void print_desc(pretty_printer &pp) const final override
bool is_return_p() const final override
const supernode * m_src_snode
Definition checker-event.h:542
meaning get_meaning() const override
tree get_longjmp_caller() const
rewind_event(const exploded_edge *eedge, enum event_kind kind, const event_loc_info &loc_info, const rewind_info_t *rewind_info)
tree get_setjmp_caller() const
const exploded_edge * m_eedge
Definition checker-event.h:658
const rewind_info_t * m_rewind_info
Definition checker-event.h:655
const exploded_edge * get_eedge() const
Definition checker-event.h:648
rewind_from_longjmp_event(const exploded_edge *eedge, const event_loc_info &loc_info, const rewind_info_t *rewind_info)
Definition checker-event.h:667
void print_desc(pretty_printer &pp) const final override
Definition exploded-graph.h:470
void prepare_for_emission(checker_path *path, pending_diagnostic *pd, diagnostic_event_id_t emission_id) final override
rewind_to_setjmp_event(const exploded_edge *eedge, const event_loc_info &loc_info, const rewind_info_t *rewind_info)
Definition checker-event.h:684
void print_desc(pretty_printer &pp) const final override
diagnostic_event_id_t m_original_setjmp_event_id
Definition checker-event.h:699
const gcall & m_setjmp_call
Definition checker-event.h:634
void print_desc(pretty_printer &pp) const final override
void prepare_for_emission(checker_path *path, pending_diagnostic *pd, diagnostic_event_id_t emission_id) final override
const exploded_node * m_enode
Definition checker-event.h:633
setjmp_event(const event_loc_info &loc_info, const exploded_node *enode, const gcall &setjmp_call)
Definition checker-event.h:618
bool connect_to_next_event_p() const final override
Definition checker-event.h:451
void print_desc(pretty_printer &pp) const override
static label_text maybe_describe_condition(bool can_colorize, tree lhs, enum tree_code op, tree rhs)
start_cfg_edge_event(const exploded_edge &eedge, const event_loc_info &loc_info)
Definition checker-event.h:444
label_text maybe_describe_condition(bool can_colorize) const
static bool should_print_expr_p(tree)
bool connect_to_next_event_p() const final override
Definition checker-event.h:561
meaning get_meaning() const override
start_consolidated_cfg_edges_event(const event_loc_info &loc_info, bool edge_sense)
Definition checker-event.h:552
bool m_edge_sense
Definition checker-event.h:564
void print_desc(pretty_printer &pp) const final override
state_machine::state_t m_to
Definition checker-event.h:381
state_machine::state_t m_from
Definition checker-event.h:380
void print_desc(pretty_printer &pp) const final override
const svalue * m_origin
Definition checker-event.h:382
state_change_event(const supernode *node, const gimple *stmt, int stack_depth, const state_machine &sm, const svalue *sval, state_machine::state_t from, state_machine::state_t to, const svalue *origin, const program_state &dst_state, const exploded_node *enode)
const exploded_node * get_exploded_node() const
Definition checker-event.h:374
meaning get_meaning() const override
const supernode * m_node
Definition checker-event.h:376
program_state m_dst_state
Definition checker-event.h:383
const state_machine & m_sm
Definition checker-event.h:378
const svalue * m_sval
Definition checker-event.h:379
const exploded_node * m_enode
Definition checker-event.h:384
const gimple * m_stmt
Definition checker-event.h:377
const function * get_dest_function() const
Definition checker-event.h:369
const state_machine::state * state_t
Definition sm.h:60
statement_event(const gimple *stmt, tree fndecl, int depth, const program_state &dst_state)
void print_desc(pretty_printer &) const final override
const gimple *const m_stmt
Definition checker-event.h:228
const program_state m_dst_state
Definition checker-event.h:229
state_machine::state_t m_critical_state
Definition checker-event.h:419
superedge_event(enum event_kind kind, const exploded_edge &eedge, const event_loc_info &loc_info)
const callgraph_superedge & get_callgraph_superedge() const
void maybe_add_sarif_properties(sarif_builder &, sarif_object &thread_flow_loc_obj) const override
tree m_var
Definition checker-event.h:418
const exploded_edge & m_eedge
Definition checker-event.h:416
bool should_filter_p(int verbosity) const
void record_critical_state(tree var, state_machine::state_t state)
Definition checker-event.h:401
const superedge * m_sedge
Definition checker-event.h:417
Definition supergraph.h:318
Definition supergraph.h:239
const gcall & m_throw_call
Definition checker-event.h:718
throw_event(const event_loc_info &loc_info, const exploded_node *enode, const gcall &throw_call)
Definition checker-event.h:707
const exploded_node * m_enode
Definition checker-event.h:717
void print_desc(pretty_printer &pp) const final override
throw_from_call_to_external_fn_event(const event_loc_info &loc_info, const exploded_node *enode, const gcall &throw_call, tree fndecl)
Definition checker-event.h:752
tree m_fndecl
Definition checker-event.h:764
unwind_event(const event_loc_info &loc_info)
Definition checker-event.h:773
void print_desc(pretty_printer &pp) const final override
int m_num_frames
Definition checker-event.h:781
tree m_var
Definition checker-event.h:810
const exploded_node * get_exploded_node() const
Definition checker-event.h:805
const state_machine * m_sm
Definition checker-event.h:809
meaning get_meaning() const override
const exploded_node * m_enode
Definition checker-event.h:808
void print_desc(pretty_printer &pp) const final override
state_machine::state_t m_state
Definition checker-event.h:811
warning_event(const event_loc_info &loc_info, const exploded_node *enode, const state_machine *sm, tree var, state_machine::state_t state)
Definition checker-event.h:792
Definition diagnostic-event-id.h:37
Definition diagnostic-path.h:72
Definition pretty-print.h:241
Definition diagnostic-format-sarif.cc:747
Definition diagnostic-format-sarif.h:133
static struct path_prefix cpath path
Definition collect2.cc:514
union tree_node * tree
Definition coretypes.h:97
int diagnostic_thread_id_t
Definition diagnostic-event-id.h:70
void final(rtx_insn *first, FILE *file, int optimize_p)
Definition final.cc:2008
tree_code
Definition genmatch.cc:1002
logical_location_manager::key logical_location
Definition logical-location.h:173
Definition access-diagram.h:30
event_kind
Definition checker-event.h:34
@ function_entry
Definition checker-event.h:39
@ throw_
Definition checker-event.h:52
@ unwind
Definition checker-event.h:53
@ stmt
Definition checker-event.h:37
@ setjmp_
Definition checker-event.h:49
@ rewind_to_setjmp
Definition checker-event.h:51
@ start_consolidated_cfg_edges
Definition checker-event.h:46
@ start_cfg_edge
Definition checker-event.h:41
@ region_creation
Definition checker-event.h:38
@ inlined_call
Definition checker-event.h:48
@ warning
Definition checker-event.h:54
@ state_change
Definition checker-event.h:40
@ rewind_from_longjmp
Definition checker-event.h:50
@ catch_
Definition checker-event.h:43
@ custom
Definition checker-event.h:36
@ return_edge
Definition checker-event.h:45
@ end_cfg_edge
Definition checker-event.h:42
@ debug
Definition checker-event.h:35
@ call_edge
Definition checker-event.h:44
@ end_consolidated_cfg_edges
Definition checker-event.h:47
const char * event_kind_to_string(enum event_kind ek)
memory_space
Definition region.h:32
void pp_printf(pretty_printer *pp, const char *msg,...)
Definition pretty-print.cc:2569
void pp_string(pretty_printer *pp, const char *str)
Definition pretty-print.cc:2650
Definition event-loc-info.h:29
Definition diagnostic-path.h:116
Definition function.h:249
Definition genautomata.cc:669
Definition gengtype.h:252
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:814