|
| infinite_recursion_diagnostic (const exploded_node *prev_entry_enode, const exploded_node *new_entry_enode, tree callee_fndecl) |
const char * | get_kind () const final override |
bool | operator== (const infinite_recursion_diagnostic &other) const |
int | get_controlling_option () const final override |
bool | emit (diagnostic_emission_context &ctxt) final override |
bool | describe_final_event (pretty_printer &pp, const evdesc::final_event &) final override |
void | add_function_entry_event (const exploded_edge &eedge, checker_path *emission_path) final override |
void | add_final_event (const state_machine *, const exploded_node *enode, const event_loc_info &, tree, state_machine::state_t, checker_path *emission_path) final override |
bool | check_valid_fpath_p (const feasible_node &final_fnode, const gimple *) const final override |
void | maybe_add_sarif_properties (sarif_object &result_obj) const final override |
bool | subclass_equal_p (const pending_diagnostic &base_other) const final override |
virtual bool | terminate_path_p () const |
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 | 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 bool | supercedes_p (const pending_diagnostic &other) const |
virtual void | mark_interesting_stuff (interesting_t *) |
Detection of infinite recursion.
Copyright (C) 2022-2025 Free Software Foundation, Inc.
Contributed by David Malcolm <dmalcolm@redhat.com>.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>.
A subclass of pending_diagnostic for complaining about suspected
infinite recursion.