GCC Middle and Back End API Reference
|
#include <checker-event.h>
Public Types | |
enum | verb { VERB_unknown , VERB_acquire , VERB_release , VERB_enter , VERB_exit , VERB_call , VERB_return , VERB_branch , VERB_danger } |
enum | noun { NOUN_unknown , NOUN_taint , NOUN_sensitive , NOUN_function , NOUN_lock , NOUN_memory , NOUN_resource } |
enum | property { PROPERTY_unknown , PROPERTY_true , PROPERTY_false } |
Public Member Functions | |
location_t | get_location () const final override |
int | get_stack_depth () const final override |
const logical_location * | get_logical_location () const final override |
meaning | get_meaning () const override |
bool | connect_to_next_event_p () const override |
diagnostic_thread_id_t | get_thread_id () const final override |
void | maybe_add_sarif_properties (sarif_object &thread_flow_loc_obj) const override |
tree | get_fndecl () const |
int | get_original_stack_depth () const |
virtual void | prepare_for_emission (checker_path *, pending_diagnostic *pd, diagnostic_event_id_t emission_id) |
virtual bool | is_call_p () const |
virtual bool | is_function_entry_p () const |
virtual bool | is_return_p () const |
const diagnostic_event_id_t * | get_id_ptr () const |
void | dump (pretty_printer *pp) const |
void | debug () const |
void | set_location (location_t loc) |
virtual void | print_desc (pretty_printer &pp) const =0 |
label_text | get_desc (pretty_printer &ref_pp) const |
Data Fields | |
enum event_kind | m_kind |
Protected Member Functions | |
region_creation_event (const event_loc_info &loc_info) | |
Protected Attributes | |
location_t | m_loc |
tree | m_original_fndecl |
tree | m_effective_fndecl |
int | m_original_depth |
int | m_effective_depth |
pending_diagnostic * | m_pending_diagnostic |
diagnostic_event_id_t | m_emission_id |
tree_logical_location | m_logical_loc |
An abstract event subclass describing the creation of a region that is significant for a diagnostic. There are too many combinations to express region creation in one message, so we emit multiple region_creation_event instances when each pertinent region is created. The events are created by pending_diagnostic's add_region_creation_events vfunc, which by default creates a region_creation_event_memory_space, and if a capacity is known, a region_creation_event_capacity, giving e.g.: (1) region created on stack here (2) capacity: 100 bytes but this vfunc can be overridden to create other events if other wordings are more appropriate foa a given pending_diagnostic.
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
inlineoverridevirtualinherited |
Implements diagnostic_event.
Reimplemented in ana::start_cfg_edge_event, and ana::start_consolidated_cfg_edges_event.
|
inherited |
|
inherited |
|
inherited |
Generate a label_text containing the description of this event (for debugging/logging purposes).
References pretty_printer::clone(), pp_formatted_text(), pp_show_color(), and diagnostic_event::print_desc().
|
inlineinherited |
References ana::checker_event::m_effective_fndecl.
|
inlineinherited |
References ana::checker_event::m_emission_id.
|
inlinefinaloverridevirtualinherited |
Implements diagnostic_event.
References ana::checker_event::m_loc.
|
inlinefinaloverridevirtualinherited |
Implements diagnostic_event.
References ana::checker_event::m_effective_fndecl, ana::checker_event::m_logical_loc, and NULL.
|
overridevirtualinherited |
Implements diagnostic_event.
Reimplemented in ana::function_entry_event, ana::inlined_call_event, ana::return_event, ana::start_consolidated_cfg_edges_event, ana::state_change_event, and ana::warning_event.
|
inlineinherited |
References ana::checker_event::m_original_depth.
|
inlinefinaloverridevirtualinherited |
Implements diagnostic_event.
References ana::checker_event::m_effective_depth.
|
inlinefinaloverridevirtualinherited |
Implements diagnostic_event.
|
inlinevirtualinherited |
Reimplemented in ana::call_event.
|
inlinevirtualinherited |
Reimplemented in ana::function_entry_event.
|
inlinevirtualinherited |
Reimplemented in ana::return_event.
|
overridevirtualinherited |
Reimplemented from diagnostic_event.
Reimplemented in ana::superedge_event.
|
virtualinherited |
Reimplemented in ana::rewind_to_setjmp_event, and ana::setjmp_event.
Referenced by ana::checker_path::prepare_for_emission().
|
pure virtualinherited |
Implemented in ana::call_event, ana::debug_event, ana::end_cfg_edge_event, ana::end_consolidated_cfg_edges_event, ana::function_entry_event, ana::inlined_call_event, ana::precanned_custom_event, ana::region_creation_event_allocation_size, ana::region_creation_event_capacity, ana::region_creation_event_debug, ana::region_creation_event_memory_space, ana::return_event, ana::rewind_from_longjmp_event, ana::rewind_to_setjmp_event, ana::setjmp_event, ana::start_cfg_edge_event, ana::start_consolidated_cfg_edges_event, ana::state_change_event, ana::statement_event, ana::warning_event, libgdiagnostics_path_event, looping_back_event, perpetual_start_cfg_edge_event, and simple_diagnostic_event.
Referenced by diagnostic_event::get_desc().
|
inlineinherited |
References ana::checker_event::m_loc.
|
protectedinherited |
Referenced by ana::checker_event::get_stack_depth().
|
protectedinherited |
Referenced by ana::checker_event::get_fndecl(), and ana::checker_event::get_logical_location().
|
protectedinherited |
Referenced by ana::checker_event::get_id_ptr().
|
inherited |
|
protectedinherited |
Referenced by ana::checker_event::get_location(), and ana::checker_event::set_location().
|
protectedinherited |
Referenced by ana::checker_event::get_logical_location().
|
protectedinherited |
Referenced by ana::checker_event::get_original_stack_depth().
|
protectedinherited |
|
protectedinherited |