GCC Middle and Back End API Reference
ana::pending_diagnostic_subclass< Subclass > Class Template Referenceabstract

#include <pending-diagnostic.h>

Inheritance diagram for ana::pending_diagnostic_subclass< Subclass >:
Collaboration diagram for ana::pending_diagnostic_subclass< Subclass >:

Public Member Functions

bool subclass_equal_p (const pending_diagnostic &base_other) const final override
 
virtual int get_controlling_option () const =0
 
virtual bool terminate_path_p () const
 
virtual bool emit (diagnostic_emission_context &)=0
 
virtual const char * get_kind () const =0
 
virtual bool use_of_uninit_p () const
 
bool equal_p (const pending_diagnostic &other) const
 
virtual location_t fixup_location (location_t loc, bool primary) const
 
virtual bool describe_state_change (pretty_printer &, const evdesc::state_change &)
 
virtual diagnostic_event::meaning get_meaning_for_state_change (const evdesc::state_change &) const
 
virtual bool describe_call_with_state (pretty_printer &, const evdesc::call_with_state &)
 
virtual bool describe_return_of_state (pretty_printer &, const evdesc::return_of_state &)
 
virtual bool describe_final_event (pretty_printer &, const evdesc::final_event &)
 
virtual void add_function_entry_event (const exploded_edge &eedge, checker_path *emission_path)
 
virtual bool maybe_add_custom_events_for_superedge (const exploded_edge &, checker_path *)
 
virtual void add_call_event (const exploded_edge &, checker_path *)
 
virtual void add_region_creation_events (const region *reg, tree capacity, const event_loc_info &loc_info, checker_path &emission_path)
 
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 bool supercedes_p (const pending_diagnostic &other) const
 
virtual void mark_interesting_stuff (interesting_t *)
 
virtual bool check_valid_fpath_p (const feasible_node &, const gimple *) const
 
virtual void maybe_add_sarif_properties (sarif_object &) const
 

Static Public Member Functions

static bool same_tree_p (tree t1, tree t2)
 

Detailed Description

template<class Subclass>
class ana::pending_diagnostic_subclass< Subclass >
A template to make it easier to make subclasses of pending_diagnostic.

This uses the curiously-recurring template pattern, to implement
pending_diagnostic::subclass_equal_p by casting and calling
the operator==

This assumes that BASE_OTHER has already been checked to have
been of the same subclass (which pending_diagnostic::equal_p does).   

Member Function Documentation

◆ add_call_event()

virtual void ana::pending_diagnostic::add_call_event ( const exploded_edge & ,
checker_path *  )
virtualinherited

◆ add_final_event()

virtual void ana::pending_diagnostic::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 )
virtualinherited

◆ add_function_entry_event()

virtual void ana::pending_diagnostic::add_function_entry_event ( const exploded_edge & eedge,
checker_path * emission_path )
virtualinherited

◆ add_region_creation_events()

virtual void ana::pending_diagnostic::add_region_creation_events ( const region * reg,
tree capacity,
const event_loc_info & loc_info,
checker_path & emission_path )
virtualinherited

◆ check_valid_fpath_p()

virtual bool ana::pending_diagnostic::check_valid_fpath_p ( const feasible_node & ,
const gimple *  ) const
inlinevirtualinherited

Reimplemented in infinite_recursion_diagnostic.

◆ describe_call_with_state()

virtual bool ana::pending_diagnostic::describe_call_with_state ( pretty_printer & ,
const evdesc::call_with_state &  )
inlinevirtualinherited

◆ describe_final_event()

virtual bool ana::pending_diagnostic::describe_final_event ( pretty_printer & ,
const evdesc::final_event &  )
inlinevirtualinherited

◆ describe_return_of_state()

virtual bool ana::pending_diagnostic::describe_return_of_state ( pretty_printer & ,
const evdesc::return_of_state &  )
inlinevirtualinherited

◆ describe_state_change()

virtual bool ana::pending_diagnostic::describe_state_change ( pretty_printer & ,
const evdesc::state_change &  )
inlinevirtualinherited

◆ emit()

virtual bool ana::pending_diagnostic::emit ( diagnostic_emission_context & )
pure virtualinherited

◆ equal_p()

bool ana::pending_diagnostic::equal_p ( const pending_diagnostic & other) const
inlineinherited

◆ fixup_location()

virtual location_t ana::pending_diagnostic::fixup_location ( location_t loc,
bool primary ) const
virtualinherited

◆ get_controlling_option()

virtual int ana::pending_diagnostic::get_controlling_option ( ) const
pure virtualinherited

◆ get_kind()

virtual const char * ana::pending_diagnostic::get_kind ( ) const
pure virtualinherited

◆ get_meaning_for_state_change()

virtual diagnostic_event::meaning ana::pending_diagnostic::get_meaning_for_state_change ( const evdesc::state_change & ) const
inlinevirtualinherited

◆ mark_interesting_stuff()

virtual void ana::pending_diagnostic::mark_interesting_stuff ( interesting_t * )
inlinevirtualinherited

◆ maybe_add_custom_events_for_superedge()

virtual bool ana::pending_diagnostic::maybe_add_custom_events_for_superedge ( const exploded_edge & ,
checker_path *  )
inlinevirtualinherited

Reimplemented in infinite_loop_diagnostic.

◆ maybe_add_sarif_properties()

virtual void ana::pending_diagnostic::maybe_add_sarif_properties ( sarif_object & ) const
inlinevirtualinherited

◆ same_tree_p()

static bool ana::pending_diagnostic::same_tree_p ( tree t1,
tree t2 )
staticinherited

◆ subclass_equal_p()

template<class Subclass >
bool ana::pending_diagnostic_subclass< Subclass >::subclass_equal_p ( const pending_diagnostic & base_other) const
inlinefinaloverridevirtual

◆ supercedes_p()

virtual bool ana::pending_diagnostic::supercedes_p ( const pending_diagnostic & other) const
inlinevirtualinherited

◆ terminate_path_p()

virtual bool ana::pending_diagnostic::terminate_path_p ( ) const
inlinevirtualinherited

◆ use_of_uninit_p()

virtual bool ana::pending_diagnostic::use_of_uninit_p ( ) const
inlinevirtualinherited

The documentation for this class was generated from the following file: