21#ifndef GCC_DIAGNOSTIC_H
22#define GCC_DIAGNOSTIC_H
25#include "rich-location.h"
190template <
typename Sink>
244 void init (
int n_opts);
252 void pop (location_t where);
379 bool colorize)
const;
408 const expanded_location &exploc);
413 const expanded_location &exploc);
444 const rich_location &richloc,
450 const rich_location &richloc,
506 void dump (FILE *out,
int indent)
const;
576 void dump (FILE *out)
const;
594 bool should_skip_bom);
610 rich_location &richloc,
613 const char *gmsgid, ...)
616 rich_location &richloc,
619 const
char *gmsgid, va_list *
ap)
665 void set_output_format (std::unique_ptr<diagnostic_output_format> output_format);
786 const char *,
const char *, va_list *,
828 add_sink (std::unique_ptr<diagnostic_output_format>);
1147#define diagnostic_context_auxiliary_data(DC) (DC)->m_client_aux_data
1148#define diagnostic_info_auxiliary_data(DI) (DI)->x_data
1157#define errorcount global_dc->diagnostic_count (DK_ERROR)
1159#define warningcount global_dc->diagnostic_count (DK_WARNING)
1161#define werrorcount global_dc->diagnostic_count (DK_WERROR)
1163#define sorrycount global_dc->diagnostic_count (DK_SORRY)
1166#define diagnostic_report_warnings_p(DC, LOC) \
1167 (!(DC)->m_inhibit_warnings \
1168 && !(in_system_header_at (LOC) && !(DC)->m_warn_system_headers))
1166#define diagnostic_report_warnings_p(DC, LOC) \ …
1209 rich_location *richloc,
1217 context->
maybe_show_locus (*richloc, opts, diagnostic_kind, *pp, effect_info);
1223 rich_location *richloc,
1232 effect_info, label_writer);
1253 bool should_skip_bom)
1298#ifdef ATTRIBUTE_GCC_DIAG
1302 va_list *, rich_location *,
1308template <
typename Sink>
1325 return diagnostic->message.get_location (which);
1333 return diagnostic->message.m_richloc->get_num_locations ();
1340inline expanded_location
1343 return diagnostic->richloc->get_expanded_location (which);
1357 expanded_location s1, expanded_location s2)
1359 return (s2.column && s1.line == s2.line
1361 > abs (s1.column - s2.column)));
1376 return global_dc->warning_enabled_at (loc, option_id);
1382 return global_dc->option_unspecified_p (option_id);
Definition diagnostic-buffer.h:57
Definition diagnostic-client-data-hooks.h:33
Definition diagnostic.h:371
label_text get_location_text(const expanded_location &s, bool show_column, bool colorize) const
Definition diagnostic.cc:768
enum diagnostics_column_unit m_column_unit
Definition diagnostic.h:385
int m_column_origin
Definition diagnostic.h:386
diagnostic_column_policy(const diagnostic_context &dc)
Definition diagnostic.cc:744
int converted_column(expanded_location s) const
Definition diagnostic.cc:756
int m_tabstop
Definition diagnostic.h:387
int get_tabstop() const
Definition diagnostic.h:381
file_cache & m_file_cache
Definition diagnostic.h:384
Definition diagnostic.h:551
struct diagnostic_context::@012375117275062000312167204021321243213276373064 m_diagnostic_groups
void action_after_output(diagnostic_t diag_kind)
Definition diagnostic.cc:941
void push_owned_urlifier(std::unique_ptr< urlifier >)
Definition diagnostic.cc:567
friend class diagnostic_source_print_policy
Definition diagnostic.h:561
int diagnostic_count(diagnostic_t kind) const
Definition diagnostic.h:741
bool bool emit_diagnostic_with_group_va(diagnostic_t kind, rich_location &richloc, const diagnostic_metadata *metadata, diagnostic_option_id option_id, const char *gmsgid, va_list *ap) ATTRIBUTE_GCC_DIAG(6
Definition diagnostic.cc:1396
int m_tabstop
Definition diagnostic.h:1044
void initialize(int n_opts)
Definition diagnostic.cc:221
bool notes_inhibited_in_group() const
Definition diagnostic.cc:1048
file_cache * m_file_cache
Definition diagnostic.h:904
bool execution_failed_p() const
Definition diagnostic.cc:478
void set_show_rules(bool val)
Definition diagnostic.h:684
void get_any_inlining_info(diagnostic_info *diagnostic)
Definition diagnostic.cc:1226
enum diagnostic_path_format m_path_format
Definition diagnostic.h:927
void finish()
Definition diagnostic.cc:386
void set_main_input_filename(const char *filename)
Definition diagnostic.cc:528
pretty_printer * get_reference_printer() const
Definition diagnostic.h:822
void end_group()
Definition diagnostic.cc:1830
void error_recursion() ATTRIBUTE_NORETURN
Definition diagnostic.cc:1762
int m_diagnostic_nesting_level
Definition diagnostic.h:1063
void set_escape_format(enum diagnostics_escape_format val)
Definition diagnostic.h:693
bool diagnostic_enabled(diagnostic_info *diagnostic)
Definition diagnostic.cc:1310
struct diagnostic_context::@025320134223110177324072134063066351130257375203 m_text_callbacks
void maybe_show_locus_as_html(const rich_location &richloc, const diagnostic_source_printing_options &opts, diagnostic_t diagnostic_kind, xml::printer &xp, diagnostic_source_effect_info *effect_info, html_label_writer *label_writer)
Definition diagnostic-show-locus.cc:3877
void(* set_locations_callback_t)(diagnostic_context *, diagnostic_info *)
Definition diagnostic.h:565
bool m_show_option_requested
Definition diagnostic.h:934
void set_set_locations_callback(set_locations_callback_t cb)
Definition diagnostic.h:587
void DEBUG_FUNCTION dump() const
Definition diagnostic.h:577
bool m_report_bug
Definition diagnostic.h:1029
void inhibit_notes_in_group(bool inhibit=true)
Definition diagnostic.cc:1018
void remove_all_output_sinks()
Definition diagnostic.cc:488
void refresh_output_sinks()
Definition diagnostic.cc:626
void set_fatal_errors(bool fatal_errors)
Definition diagnostic.h:857
edit_context * get_edit_context() const
Definition diagnostic.h:721
void push_nesting_level()
Definition diagnostic.cc:1847
void set_format_decoder(printer_fn format_decoder)
Definition diagnostic.cc:636
void set_path_format(enum diagnostic_path_format val)
Definition diagnostic.h:686
friend diagnostic_text_starter_fn & diagnostic_text_starter(diagnostic_context *context)
Definition diagnostic.h:1124
void set_diagnostic_buffer(diagnostic_buffer *)
Definition diagnostic.cc:1948
void set_max_errors(int val)
Definition diagnostic.h:692
friend class diagnostic_text_output_format
Definition diagnostic.h:562
int pch_restore(FILE *f)
Definition diagnostic.h:803
void set_option_manager(std::unique_ptr< diagnostic_option_manager > mgr, unsigned lang_mask)
Definition diagnostic.cc:558
enum diagnostics_extra_output_kind m_extra_output_kind
Definition diagnostic.h:1034
bool m_inhibit_warnings
Definition diagnostic.h:959
int m_emission_count
Definition diagnostic.h:1067
friend diagnostic_text_finalizer_fn & diagnostic_text_finalizer(diagnostic_context *context)
Definition diagnostic.h:1141
diagnostic_output_format & get_output_format(size_t idx) const
Definition diagnostic.cc:503
bool m_show_column
Definition diagnostic.h:941
void add_sink(std::unique_ptr< diagnostic_output_format >)
Definition diagnostic.cc:511
bool bool diagnostic_n_impl(rich_location *, const diagnostic_metadata *, diagnostic_option_id, unsigned HOST_WIDE_INT, const char *, const char *, va_list *, diagnostic_t) ATTRIBUTE_GCC_DIAG(7
Definition diagnostic.cc:1716
struct diagnostic_context::@144115345167042231333361231316114173002254305105 m_diagrams
diagnostic_option_classifier m_option_classifier
Definition diagnostic.h:917
diagnostic_option_id m_opt_permissive
Definition diagnostic.h:952
void report_verbatim(text_info &)
Definition diagnostic.cc:1614
bool m_show_path_depths
Definition diagnostic.h:930
int & diagnostic_count(diagnostic_t kind)
Definition diagnostic.h:737
char * make_option_url(diagnostic_option_id option_id) const
Definition diagnostic.h:765
void push_diagnostics(location_t where)
Definition diagnostic.h:641
void begin_group()
Definition diagnostic.cc:1824
enum diagnostics_escape_format m_escape_format
Definition diagnostic.h:1049
set_locations_callback_t m_set_locations_cb
Definition diagnostic.h:1087
void set_internal_error_callback(void(*cb)(diagnostic_context *, const char *, va_list *))
Definition diagnostic.h:863
void set_output_format(std::unique_ptr< diagnostic_output_format > output_format)
Definition diagnostic.cc:496
void set_show_path_depths(bool val)
Definition diagnostic.h:690
diagnostic_start_span_fn< to_text > m_text_start_span
Definition diagnostic.h:982
char * make_option_name(diagnostic_option_id option_id, diagnostic_t orig_diag_kind, diagnostic_t diag_kind) const
Definition diagnostic.h:754
diagnostic_counters m_diagnostic_counters
Definition diagnostic.h:907
std::unique_ptr< pretty_printer > clone_printer() const
Definition diagnostic.h:817
const char *const * get_original_argv()
Definition diagnostic.h:582
void set_pretty_printer(std::unique_ptr< pretty_printer > pp)
Definition diagnostic.cc:616
bool m_warn_system_headers
Definition diagnostic.h:962
char * build_indent_prefix() const
void flush_diagnostic_buffer(diagnostic_buffer &)
Definition diagnostic.cc:1998
diagnostic_text_starter_fn m_begin_diagnostic
Definition diagnostic.h:977
enum diagnostic_path_format get_path_format() const
Definition diagnostic.h:708
int pch_save(FILE *f)
Definition diagnostic.h:797
pretty_printer * m_reference_printer
Definition diagnostic.h:899
char ** m_original_argv
Definition diagnostic.h:1109
diagnostic_client_data_hooks * m_client_data_hooks
Definition diagnostic.h:1095
void(* m_internal_error)(diagnostic_context *, const char *, va_list *)
Definition diagnostic.h:990
bool warning_enabled_at(location_t loc, diagnostic_option_id option_id)
Definition diagnostic.cc:1354
bool m_show_cwe
Definition diagnostic.h:921
diagnostic_text_finalizer_fn m_end_diagnostic
Definition diagnostic.h:986
void pop_urlifier()
Definition diagnostic.cc:583
void * m_client_aux_data
Definition diagnostic.h:1014
void set_client_data_hooks(std::unique_ptr< diagnostic_client_data_hooks > hooks)
Definition diagnostic.cc:536
diagnostic_option_manager * m_option_mgr
Definition diagnostic.h:998
void set_prefixing_rule(diagnostic_prefixing_rule_t rule)
Definition diagnostic.cc:653
auto & get_classification_history()
Definition diagnostic.h:843
void inhibit_notes()
Definition diagnostic.h:878
void set_warning_as_error_requested(bool val)
Definition diagnostic.h:674
location_t m_last_location
Definition diagnostic.h:1017
void check_max_errors(bool flush)
Definition diagnostic.cc:917
unsigned get_lang_mask() const
Definition diagnostic.h:776
void push_borrowed_urlifier(const urlifier &)
Definition diagnostic.cc:575
auto_vec< urlifier_stack_node > * m_urlifier_stack
Definition diagnostic.h:1010
void set_adjust_diagnostic_info_callback(void(*cb)(diagnostic_context *, diagnostic_info *))
Definition diagnostic.h:871
void pop_nesting_level()
Definition diagnostic.cc:1853
enum diagnostics_escape_format get_escape_format() const
Definition diagnostic.h:709
int m_inhibiting_notes_from
Definition diagnostic.h:1070
bool emit_diagnostic_with_group(diagnostic_t kind, rich_location &richloc, const diagnostic_metadata *metadata, diagnostic_option_id option_id, const char *gmsgid,...) ATTRIBUTE_GCC_DIAG(6
Definition diagnostic.cc:1373
const logical_location_manager * get_logical_location_manager() const
Definition diagnostic.cc:594
void set_text_art_charset(enum diagnostic_text_art_charset charset)
Definition diagnostic.cc:1915
auto_vec< diagnostic_output_format * > m_output_sinks
Definition diagnostic.h:1081
const urlifier * get_urlifier() const
Definition diagnostic.cc:602
text_art::theme * m_theme
Definition diagnostic.h:1104
bool m_inhibit_notes_p
Definition diagnostic.h:1022
bool show_path_depths_p() const
Definition diagnostic.h:706
bool supports_fnotice_on_stderr_p() const
Definition diagnostic.cc:519
void color_init(int value)
Definition diagnostic.cc:314
bool m_warning_as_error_requested
Definition diagnostic.h:910
const diagnostic_client_data_hooks * get_client_data_hooks() const
Definition diagnostic.h:725
void set_show_option_requested(bool val)
Definition diagnostic.h:691
void set_original_argv(unique_argv original_argv)
Definition diagnostic.cc:544
void urls_init(int value)
Definition diagnostic.cc:345
friend class diagnostic_buffer
Definition diagnostic.h:563
bool bool bool report_diagnostic(diagnostic_info *)
Definition diagnostic.cc:1419
int m_n_opts
Definition diagnostic.h:914
bool diagnostic_impl(rich_location *, const diagnostic_metadata *, diagnostic_option_id, const char *, va_list *, diagnostic_t) ATTRIBUTE_GCC_DIAG(5
Definition diagnostic.cc:1690
void report_global_digraph(const diagnostics::digraphs::lazy_digraph &)
Definition diagnostic.cc:1629
bool option_unspecified_p(diagnostic_option_id option_id) const
Definition diagnostic.h:604
void set_permissive_option(diagnostic_option_id opt_permissive)
Definition diagnostic.h:851
diagnostic_t classify_diagnostic(diagnostic_option_id option_id, diagnostic_t new_kind, location_t where)
Definition diagnostic.h:631
file_cache & get_file_cache() const
Definition diagnostic.h:715
bool option_enabled_p(diagnostic_option_id option_id) const
Definition diagnostic.h:747
void pop_diagnostics(location_t where)
Definition diagnostic.h:645
bool m_pedantic_errors
Definition diagnostic.h:944
text_art::theme * get_diagram_theme() const
Definition diagnostic.h:735
int m_column_origin
Definition diagnostic.h:1041
bool m_fatal_errors
Definition diagnostic.h:955
bool m_permissive
Definition diagnostic.h:947
void maybe_show_locus(const rich_location &richloc, const diagnostic_source_printing_options &opts, diagnostic_t diagnostic_kind, pretty_printer &pp, diagnostic_source_effect_info *effect_info)
Definition diagnostic-show-locus.cc:3844
diagnostic_start_span_fn< to_html > m_html_start_span
Definition diagnostic.h:983
void(* m_adjust_diagnostic_info)(diagnostic_context *, diagnostic_info *)
Definition diagnostic.h:994
unsigned m_lang_mask
Definition diagnostic.h:999
void create_edit_context()
Definition diagnostic.cc:662
diagnostic_buffer * get_diagnostic_buffer() const
Definition diagnostic.h:810
enum diagnostics_column_unit m_column_unit
Definition diagnostic.h:1038
void emit_diagram(const diagnostic_diagram &diagram)
Definition diagnostic.cc:1747
int m_lock
Definition diagnostic.h:1020
friend diagnostic_start_span_fn< to_text > & diagnostic_start_span(diagnostic_context *context)
Definition diagnostic.h:1133
void set_report_bug(bool val)
Definition diagnostic.h:678
bool m_show_rules
Definition diagnostic.h:924
void set_show_cwe(bool val)
Definition diagnostic.h:683
void clear_diagnostic_buffer(diagnostic_buffer &)
Definition diagnostic.cc:1982
bool bool int get_diagnostic_nesting_level() const
Definition diagnostic.h:789
int m_max_errors
Definition diagnostic.h:966
bool m_abort_on_error
Definition diagnostic.h:937
edit_context * m_edit_context_ptr
Definition diagnostic.h:1055
diagnostic_source_printing_options m_source_printing
Definition diagnostic.h:1025
void set_abort_on_error(bool val)
Definition diagnostic.h:836
bool warning_as_error_requested_p() const
Definition diagnostic.h:702
void set_extra_output_kind(enum diagnostics_extra_output_kind kind)
Definition diagnostic.h:679
int m_group_nesting_depth
Definition diagnostic.h:1060
void set_show_highlight_colors(bool val)
Definition diagnostic.cc:644
diagnostic_buffer * m_diagnostic_buffer
Definition diagnostic.h:1118
void initialize_input_context(diagnostic_input_charset_callback ccb, bool should_skip_bom)
Definition diagnostic.cc:377
Definition diagnostic-diagram.h:33
Definition diagnostic.h:395
diagnostic_location_print_policy(const diagnostic_context &dc)
Definition diagnostic.cc:790
void print_html_span_start(const diagnostic_context &dc, xml::printer &xp, const expanded_location &exploc)
Definition diagnostic-show-locus.cc:702
bool m_show_column
Definition diagnostic.h:417
bool show_column_p() const
Definition diagnostic.h:400
void print_text_span_start(const diagnostic_context &dc, pretty_printer &pp, const expanded_location &exploc)
Definition diagnostic-show-locus.cc:691
const diagnostic_column_policy & get_column_policy() const
Definition diagnostic.h:403
diagnostic_column_policy m_column_policy
Definition diagnostic.h:416
Definition diagnostic.h:242
void push()
Definition diagnostic.cc:196
diagnostic_t update_effective_level_from_pragmas(diagnostic_info *diagnostic) const
Definition diagnostic.cc:1255
vec< int > m_push_list
Definition diagnostic.h:314
void fini()
Definition diagnostic.cc:141
int m_n_opts
Definition diagnostic.h:293
vec< diagnostic_classification_change_t > m_classification_history
Definition diagnostic.h:308
void pop(location_t where)
Definition diagnostic.cc:205
diagnostic_t classify_diagnostic(const diagnostic_context *context, diagnostic_option_id option_id, diagnostic_t new_kind, location_t where)
Definition diagnostic.cc:1090
diagnostic_t * m_classify_diagnostic
Definition diagnostic.h:301
int pch_restore(FILE *)
Definition diagnostic.cc:173
diagnostic_t get_current_override(diagnostic_option_id option_id) const
Definition diagnostic.h:259
void init(int n_opts)
Definition diagnostic.cc:130
int pch_save(FILE *)
Definition diagnostic.cc:153
bool option_unspecified_p(diagnostic_option_id option_id) const
Definition diagnostic.h:254
friend class diagnostic_context
Definition diagnostic.h:311
Definition diagnostic.h:203
virtual ~diagnostic_option_manager()
Definition diagnostic.h:205
virtual int option_enabled_p(diagnostic_option_id option_id) const =0
virtual char * make_option_name(diagnostic_option_id option_id, diagnostic_t orig_diag_kind, diagnostic_t diag_kind) const =0
virtual char * make_option_url(diagnostic_option_id option_id) const =0
Definition diagnostic-label-effects.h:41
Definition diagnostic.h:436
diagnostic_start_span_fn< to_text > m_text_start_span_cb
Definition diagnostic.h:489
void print_as_html(xml::printer &xp, const rich_location &richloc, diagnostic_t diagnostic_kind, diagnostic_source_effect_info *effect_info, html_label_writer *label_writer) const
Definition diagnostic-show-locus.cc:3957
text_art::theme * m_diagram_theme
Definition diagnostic.h:494
void print(pretty_printer &pp, const rich_location &richloc, diagnostic_t diagnostic_kind, diagnostic_source_effect_info *effect_info) const
Definition diagnostic-show-locus.cc:3939
file_cache & m_file_cache
Definition diagnostic.h:491
diagnostic_start_span_fn< to_html > m_html_start_span_cb
Definition diagnostic.h:490
file_cache & get_file_cache() const
Definition diagnostic.h:465
text_art::theme * get_diagram_theme() const
Definition diagnostic.h:474
diagnostic_source_print_policy(const diagnostic_context &)
Definition diagnostic-show-locus.cc:3909
diagnostic_start_span_fn< to_text > get_text_start_span_fn() const
Definition diagnostic.h:459
enum diagnostics_escape_format m_escape_format
Definition diagnostic.h:495
class diagnostic_location_print_policy m_location_policy
Definition diagnostic.h:488
const diagnostic_source_printing_options & get_options() const
Definition diagnostic.h:456
const diagnostic_source_printing_options & m_options
Definition diagnostic.h:487
const diagnostic_location_print_policy & get_location_policy() const
Definition diagnostic.h:481
diagnostic_start_span_fn< to_html > get_html_start_span_fn() const
Definition diagnostic.h:462
enum diagnostics_escape_format get_escape_format() const
Definition diagnostic.h:468
const diagnostic_column_policy & get_column_policy() const
Definition diagnostic.h:476
Definition diagnostic-format-text.h:33
Definition diagnostic-digraphs.h:383
Definition edit-context.h:44
Definition diagnostic.h:424
virtual void begin_label()=0
virtual void end_label()=0
virtual ~html_label_writer()
Definition diagnostic.h:426
Definition logical-location.h:91
Definition pretty-print.h:241
Definition libgdiagnostics.cc:219
Definition pretty-print-urlifier.h:27
Definition xml-printer.h:33
const char *(* diagnostic_input_charset_callback)(const char *)
Definition coretypes.h:171
void ATTRIBUTE_NORETURN
Definition diagnostic-core.h:108
diagnostic_t
Definition diagnostic-core.h:29
@ DK_LAST_DIAGNOSTIC_KIND
Definition diagnostic-core.h:90
#define ATTRIBUTE_GCC_DIAG(m, n)
Definition diagnostic-core.h:103
diagnostic_context * global_dc
Definition diagnostic-global-context.cc:34
int num_digits(int value)
Definition diagnostic.cc:1638
void diagnostic_set_caret_max_width(diagnostic_context *context, int value)
Definition diagnostic.cc:116
void diagnostic_set_info(diagnostic_info *, const char *, va_list *, rich_location *, diagnostic_t) ATTRIBUTE_GCC_DIAG(2
char * get_cwe_url(int cwe)
Definition diagnostic.cc:1301
location_t diagnostic_location(const diagnostic_info *diagnostic, int which=0)
Definition diagnostic.h:1323
const int CARET_LINE_MARGIN
Definition diagnostic.h:1349
diagnostics_escape_format
Definition diagnostic.h:63
@ DIAGNOSTICS_ESCAPE_FORMAT_BYTES
Definition diagnostic.h:70
@ DIAGNOSTICS_ESCAPE_FORMAT_UNICODE
Definition diagnostic.h:66
diagnostic_text_art_charset
Definition diagnostic.h:123
@ DIAGNOSTICS_TEXT_ART_CHARSET_ASCII
Definition diagnostic.h:128
@ DIAGNOSTICS_TEXT_ART_CHARSET_NONE
Definition diagnostic.h:125
@ DIAGNOSTICS_TEXT_ART_CHARSET_UNICODE
Definition diagnostic.h:132
@ DIAGNOSTICS_TEXT_ART_CHARSET_EMOJI
Definition diagnostic.h:135
const char * maybe_line_and_column(int line, int col)
Definition diagnostic-format-text.cc:622
diagnostic_t diagnostic_classify_diagnostic(diagnostic_context *context, diagnostic_option_id option_id, diagnostic_t kind, location_t where)
Definition diagnostic.h:1260
void(* diagnostic_text_finalizer_fn)(diagnostic_text_output_format &, const diagnostic_info *, diagnostic_t)
Definition diagnostic.h:195
diagnostic_path_format
Definition diagnostic.h:89
@ DPF_NONE
Definition diagnostic.h:91
@ DPF_SEPARATE_EVENTS
Definition diagnostic.h:95
@ DPF_INLINE_EVENTS
Definition diagnostic.h:101
void diagnostic_initialize_input_context(diagnostic_context *context, diagnostic_input_charset_callback ccb, bool should_skip_bom)
Definition diagnostic.h:1251
diagnostic_text_starter_fn & diagnostic_text_starter(diagnostic_context *context)
Definition diagnostic.h:1124
diagnostics_extra_output_kind
Definition diagnostic.h:108
@ EXTRA_DIAGNOSTIC_OUTPUT_none
Definition diagnostic.h:110
@ EXTRA_DIAGNOSTIC_OUTPUT_fixits_v2
Definition diagnostic.h:117
@ EXTRA_DIAGNOSTIC_OUTPUT_fixits_v1
Definition diagnostic.h:114
diagnostics_output_format
Definition diagnostic.h:76
@ DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE
Definition diagnostic.h:84
@ DIAGNOSTICS_OUTPUT_FORMAT_TEXT
Definition diagnostic.h:78
@ DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR
Definition diagnostic.h:81
void diagnostic_urls_init(diagnostic_context *context, int value=-1)
Definition diagnostic.h:1195
diagnostic_text_finalizer_fn & diagnostic_text_finalizer(diagnostic_context *context)
Definition diagnostic.h:1141
int get_terminal_width(void)
Definition diagnostic.cc:95
const char * diagnostic_get_color_for_kind(diagnostic_t kind)
Definition diagnostic.cc:709
void default_diagnostic_text_finalizer(diagnostic_text_output_format &, const diagnostic_info *, diagnostic_t)
Definition diagnostic-format-text.cc:716
void default_diagnostic_start_span_fn(const diagnostic_location_print_policy &, Sink &sink, expanded_location)
pretty_printer * get_printer(to_text &)
Definition diagnostic-show-locus.cc:712
diagnostics_column_unit
Definition diagnostic.h:51
@ DIAGNOSTICS_COLUMN_UNIT_BYTE
Definition diagnostic.h:56
@ DIAGNOSTICS_COLUMN_UNIT_DISPLAY
Definition diagnostic.h:53
expanded_location diagnostic_expand_location(const diagnostic_info *diagnostic, int which=0)
Definition diagnostic.h:1341
const char * get_diagnostic_kind_text(diagnostic_t kind)
Definition diagnostic.cc:814
void(* diagnostic_text_starter_fn)(diagnostic_text_output_format &, const diagnostic_info *)
Definition diagnostic.h:182
bool option_unspecified_p(diagnostic_option_id option_id)
Definition diagnostic.h:1380
char * build_message_string(const char *,...) ATTRIBUTE_PRINTF_1
Definition diagnostic.cc:78
void diagnostic_finish(diagnostic_context *context)
Definition diagnostic.h:1201
bool warning_enabled_at(location_t loc, diagnostic_option_id option_id)
Definition diagnostic.h:1374
unsigned int diagnostic_num_locations(const diagnostic_info *diagnostic)
Definition diagnostic.h:1331
void diagnostic_show_locus_as_html(diagnostic_context *context, const diagnostic_source_printing_options &opts, rich_location *richloc, diagnostic_t diagnostic_kind, xml::printer &xp, diagnostic_source_effect_info *effect_info=nullptr, html_label_writer *label_writer=nullptr)
Definition diagnostic.h:1221
void diagnostic_initialize(diagnostic_context *context, int n_opts)
Definition diagnostic.h:1183
void diagnostic_set_option_id(diagnostic_info *info, diagnostic_option_id option_id)
Definition diagnostic.h:1174
void diagnostic_color_init(diagnostic_context *context, int value=-1)
Definition diagnostic.h:1189
void diagnostic_show_locus(diagnostic_context *context, const diagnostic_source_printing_options &opts, rich_location *richloc, diagnostic_t diagnostic_kind, pretty_printer *pp, diagnostic_source_effect_info *effect_info=nullptr)
Definition diagnostic.h:1207
diagnostic_start_span_fn< to_text > & diagnostic_start_span(diagnostic_context *context)
Definition diagnostic.h:1133
void void diagnostic_set_info_translated(diagnostic_info *, const char *, va_list *, rich_location *, diagnostic_t) ATTRIBUTE_GCC_DIAG(2
void diagnostic_pop_diagnostics(diagnostic_context *context, location_t where)
Definition diagnostic.h:1275
void diagnostic_push_diagnostics(diagnostic_context *context, location_t where)
Definition diagnostic.h:1269
bool diagnostic_same_line(const diagnostic_context *context, expanded_location s1, expanded_location s2)
Definition diagnostic.h:1356
bool diagnostic_report_diagnostic(diagnostic_context *context, diagnostic_info *diagnostic)
Definition diagnostic.h:1289
void(*)(const diagnostic_location_print_policy &, Sink &sink, expanded_location) diagnostic_start_span_fn
Definition diagnostic.h:191
void void void default_diagnostic_text_starter(diagnostic_text_output_format &, const diagnostic_info *)
Definition diagnostic-format-text.cc:707
@ value
Definition logical-location.h:59
Definition diagnostic-digraphs.h:36
Definition diagnostic-digraphs.h:35
Definition diagnostic-diagram.h:25
Definition diagnostic-path.h:28
bool(* printer_fn)(pretty_printer *, text_info *, const char *, int, bool, bool, bool, bool *, pp_token_list &)
Definition pretty-print.h:190
diagnostic_prefixing_rule_t
Definition pretty-print.h:66
static void const char va_list ap
Definition read-md.cc:205
Definition diagnostic.h:1006
bool m_owned
Definition diagnostic.h:1008
urlifier * m_urlifier
Definition diagnostic.h:1007
Definition diagnostic.h:503
void clear()
Definition diagnostic.cc:2046
diagnostic_counters()
Definition diagnostic.cc:2014
void move_to(diagnostic_counters &dest)
Definition diagnostic.cc:2038
int get_count(diagnostic_t kind) const
Definition diagnostic.h:509
int m_count_for_kind[DK_LAST_DIAGNOSTIC_KIND]
Definition diagnostic.h:514
void DEBUG_FUNCTION dump() const
Definition diagnostic.h:507
Definition diagnostic.h:168
void * m_ao
Definition diagnostic.h:172
auto_vec< location_t, 8 > m_ilocs
Definition diagnostic.h:170
bool m_allsyslocs
Definition diagnostic.h:174
Definition diagnostic.h:142
const diagnostic_metadata * metadata
Definition diagnostic.h:156
diagnostic_info()
Definition diagnostic.h:143
void * x_data
Definition diagnostic.h:159
diagnostic_t kind
Definition diagnostic.h:161
struct diagnostic_info::inlining_info m_iinfo
text_info message
Definition diagnostic.h:149
rich_location * richloc
Definition diagnostic.h:152
diagnostic_option_id option_id
Definition diagnostic.h:163
Definition diagnostic.h:282
diagnostic_t kind
Definition diagnostic.h:290
int option
Definition diagnostic.h:288
location_t location
Definition diagnostic.h:283
Definition diagnostic-core.h:72
int m_idx
Definition diagnostic-core.h:84
Definition diagnostic.h:321
bool enabled
Definition diagnostic.h:325
bool show_line_numbers_p
Definition diagnostic.h:349
bool show_event_links_p
Definition diagnostic.h:363
int max_width
Definition diagnostic.h:328
char caret_chars[rich_location::STATICALLY_ALLOCATED_RANGES]
Definition diagnostic.h:331
bool show_ruler_p
Definition diagnostic.h:358
bool show_labels_p
Definition diagnostic.h:344
bool colorize_source_p
Definition diagnostic.h:340
int min_margin_width
Definition diagnostic.h:354
Definition libgdiagnostics.cc:1201
Definition pretty-print.h:34
Definition diagnostic-show-locus.cc:544
Definition diagnostic-show-locus.cc:408
Definition unique-argv.h:28
#define gcc_assert(EXPR)
Definition system.h:814
#define DEBUG_FUNCTION
Definition system.h:1236