GCC Middle and Back End API Reference
|
#include <diagnostic.h>
Data Structures | |
struct | diagnostic_classification_change_t |
Public Member Functions | |
void | init (int n_opts) |
void | fini () |
void | push () |
void | pop (location_t where) |
bool | option_unspecified_p (diagnostic_option_id option_id) const |
diagnostic_t | get_current_override (diagnostic_option_id option_id) const |
diagnostic_t | classify_diagnostic (const diagnostic_context *context, diagnostic_option_id option_id, diagnostic_t new_kind, location_t where) |
diagnostic_t | update_effective_level_from_pragmas (diagnostic_info *diagnostic) const |
int | pch_save (FILE *) |
int | pch_restore (FILE *) |
Private Attributes | |
int | m_n_opts |
diagnostic_t * | m_classify_diagnostic |
vec< diagnostic_classification_change_t > | m_classification_history |
vec< int > | m_push_list |
A stack of sets of classifications: each entry in the stack is a mapping from option index to diagnostic severity that can be changed via pragmas. The stack can be pushed and popped.
diagnostic_t diagnostic_option_classifier::classify_diagnostic | ( | const diagnostic_context * | context, |
diagnostic_option_id | option_id, | ||
diagnostic_t | new_kind, | ||
location_t | where ) |
Interface to specify diagnostic kind overrides. Returns the previous setting, or DK_UNSPECIFIED if the parameters are out of range. If OPTION_ID is zero, the new setting is for all the diagnostics.
References DK_ANY, DK_LAST_DIAGNOSTIC_KIND, FOR_EACH_VEC_ELT_REVERSE, i, diagnostic_option_classifier::diagnostic_classification_change_t::kind, m_classification_history, m_classify_diagnostic, diagnostic_option_id::m_idx, m_n_opts, diagnostic_option_classifier::diagnostic_classification_change_t::option, diagnostic_context::option_enabled_p(), and UNKNOWN_LOCATION.
Referenced by diagnostic_context::classify_diagnostic().
void diagnostic_option_classifier::fini | ( | ) |
References m_classification_history, m_classify_diagnostic, and m_push_list.
Referenced by diagnostic_context::finish().
|
inline |
References gcc_assert, m_classify_diagnostic, diagnostic_option_id::m_idx, and m_n_opts.
Referenced by diagnostic_context::diagnostic_enabled(), and option_unspecified_p().
void diagnostic_option_classifier::init | ( | int | n_opts | ) |
References i, m_classification_history, m_classify_diagnostic, m_n_opts, m_push_list, and vNULL.
Referenced by diagnostic_context::initialize().
|
inline |
References get_current_override().
Referenced by diagnostic_context::option_unspecified_p().
int diagnostic_option_classifier::pch_restore | ( | FILE * | f | ) |
Read the diagnostic_option_classifier state from F for PCH read. Returns 0 on success, -1 on error.
References gcc_checking_assert, m_classification_history, and m_push_list.
Referenced by diagnostic_context::pch_restore().
int diagnostic_option_classifier::pch_save | ( | FILE * | f | ) |
Save the diagnostic_option_classifier state to F for PCH output. Returns 0 on success, -1 on error.
References m_classification_history, and m_push_list.
Referenced by diagnostic_context::pch_save().
void diagnostic_option_classifier::pop | ( | location_t | where | ) |
Restore the topmost classification set off the stack. If the stack is empty, revert to the state based on command line parameters.
References DK_POP, m_classification_history, and m_push_list.
Referenced by diagnostic_context::pop_diagnostics().
void diagnostic_option_classifier::push | ( | ) |
Save all diagnostic classifications in a stack.
References m_classification_history, and m_push_list.
Referenced by diagnostic_context::push_diagnostics().
diagnostic_t diagnostic_option_classifier::update_effective_level_from_pragmas | ( | diagnostic_info * | diagnostic | ) | const |
Update the kind of DIAGNOSTIC based on its location(s), including any of those in its inlining stack, relative to any #pragma GCC diagnostic directives recorded within this object. Return the new kind of DIAGNOSTIC if it was updated, or DK_UNSPECIFIED otherwise.
References DK_POP, FOR_EACH_VEC_ELT_REVERSE, i, diagnostic_option_classifier::diagnostic_classification_change_t::kind, line_table, diagnostic_option_classifier::diagnostic_classification_change_t::location, m_classification_history, diagnostic_option_classifier::diagnostic_classification_change_t::option, and option().
Referenced by diagnostic_context::diagnostic_enabled().
|
private |
Referenced by classify_diagnostic(), fini(), init(), pch_restore(), pch_save(), pop(), push(), and update_effective_level_from_pragmas().
|
private |
Referenced by classify_diagnostic(), fini(), get_current_override(), and init().
|
private |
Referenced by classify_diagnostic(), get_current_override(), and init().
|
private |
Referenced by fini(), init(), pch_restore(), pch_save(), pop(), and push().