Message ID | ZuQZmIAvUsRm5OOX@tucnak |
---|---|
State | New |
Headers | show |
Series | libcpp, genmatch: Use gcc_diag instead of printf for libcpp diagnostics | expand |
On Fri, 13 Sep 2024, Jakub Jelinek wrote: > Hi! > > When working on #embed support, or -Wheader-guard or other recent libcpp > changes, I've been annoyed by the libcpp diagnostics being visually > different from normal gcc diagnostics, especially in the area of quoting > stuff in the diagnostic messages. > Normall GCC diagnostics is gcc_diag/gcc_tdiag, one can use > %</%>, %qs etc. in there, while libcpp diagnostics was marked as printf > and in libcpp we've been very creative with quoting stuff, either > no quotes at all, or "something" quoting, or 'something' quoting, or > `something' quoting (but in none of the cases it used colors consistently > with the rest of the compiler). > > Now, libcpp diagnostics is always emitted using a callback, > pfile->cb.diagnostic. On the gcc/ side, this callback is initialized with > genmatch.cc: cb->diagnostic = diagnostic_cb; > c-family/c-opts.cc: cb->diagnostic = c_cpp_diagnostic; > fortran/cpp.cc: cb->diagnostic = cb_cpp_diagnostic; > where the latter two just use diagnostic_report_diagnostic, so actually > support all the gcc_diag stuff, only the genmatch.cc case didn't. > > So, the following patch changes genmatch.cc to use pp_format* instead > of vfprintf so that it supports the gcc_diag formatting (pretty-print.o > unfortunately has various dependencies, so had to link genmatch with > libcommon.a libbacktrace.a and tweak Makefile.in so that there are no > circular dependencies) and marks the libcpp diagnostic routines as > gcc_diag rather than printf. That change resulted in hundreds of > -Wformat-diag new warnings (most of them useful and resulting IMHO in > better diagnostics), so the rest of the patch is changing the format > strings to make -Wformat-diag happy and adjusting the testsuite for > the differences in how is the diagnostic reformatted. > > Dunno if some out of GCC tree projects use libcpp, that case would > make it harder because one couldn't use vfprintf in the diagnostic > callback anymore, but there is always David's libdiagnostic which could > be used for that purpose IMHO. > > Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? The genmatch.cc parts are OK - I wonder how much the new dependences push gimple-match* and generic-match* compilation to the end? Richard. > 2024-09-13 Jakub Jelinek <jakub@redhat.com> > > libcpp/ > * include/cpplib.h (ATTRIBUTE_CPP_PPDIAG): Define. > (struct cpp_callbacks): Use ATTRIBUTE_CPP_PPDIAG instead of > ATTRIBUTE_FPTR_PRINTF on diagnostic callback. > (cpp_error, cpp_warning, cpp_pedwarning, cpp_warning_syshdr): Use > ATTRIBUTE_CPP_PPDIAG (3, 4) instead of ATTRIBUTE_PRINTF_3. > (cpp_warning_at, cpp_pedwarning_at): Use ATTRIBUTE_CPP_PPDIAG (4, 5) > instead of ATTRIBUTE_PRINTF_4. > (cpp_error_with_line, cpp_warning_with_line, cpp_pedwarning_with_line, > cpp_warning_with_line_syshdr): Use ATTRIBUTE_CPP_PPDIAG (5, 6) > instead of ATTRIBUTE_PRINTF_5. > (cpp_error_at): Use ATTRIBUTE_CPP_PPDIAG (4, 5) instead of > ATTRIBUTE_PRINTF_4. > * Makefile.in (po/$(PACKAGE).pot): Use --language=GCC-source rather > than --language=c. > * errors.cc (cpp_diagnostic_at, cpp_diagnostic, > cpp_diagnostic_with_line): Use ATTRIBUTE_CPP_PPDIAG instead of > -ATTRIBUTE_FPTR_PRINTF. > * charset.cc (cpp_host_to_exec_charset, _cpp_valid_ucn, convert_hex, > convert_oct, convert_escape): Fix up -Wformat-diag warnings. > (cpp_interpret_string_ranges, count_source_chars): Use > ATTRIBUTE_CPP_PPDIAG instead of ATTRIBUTE_FPTR_PRINTF. > (narrow_str_to_charconst): Fix up -Wformat-diag warnings. > * directives.cc (check_eol_1, directive_diagnostics, lex_macro_node, > do_undef, glue_header_name, parse_include, do_include_common, > do_include_next, _cpp_parse_embed_params, do_embed, read_flag, > do_line, do_linemarker, register_pragma_1, do_pragma_once, > do_pragma_push_macro, do_pragma_pop_macro, do_pragma_poison, > do_pragma_system_header, do_pragma_warning_or_error, _cpp_do__Pragma, > do_else, do_elif, do_endif, parse_answer, do_assert, > cpp_define_unused): Likewise. > * expr.cc (cpp_classify_number, parse_defined, eval_token, > _cpp_parse_expr, reduce, check_promotion): Likewise. > * files.cc (_cpp_find_file, finish_base64_embed): Likewise. > * init.cc (sanity_checks): Likewise. > * lex.cc (_cpp_process_line_notes, maybe_warn_bidi_on_char, > _cpp_warn_invalid_utf8, _cpp_skip_block_comment, > warn_about_normalization, forms_identifier_p, maybe_va_opt_error, > identifier_diagnostics_on_lex, cpp_maybe_module_directive): Likewise. > * macro.cc (class vaopt_state, builtin_has_include_1, > builtin_has_include, builtin_has_embed, _cpp_warn_if_unused_macro, > _cpp_builtin_macro_text, builtin_macro, stringify_arg, > _cpp_arguments_ok, collect_args, enter_macro_context, > _cpp_save_parameter, parse_params, create_iso_definition, > _cpp_create_definition, check_trad_stringification): Likewise. > * pch.cc (cpp_valid_state): Likewise. > * traditional.cc (_cpp_scan_out_logical_line, recursive_macro): > Likewise. > gcc/ > * Makefile.in (generated_files): Remove {gimple,generic}-match*. > (generated_match_files): New variable. Add a dependency of > $(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) files on those. > (build/genmatch$(build_exeext)): Depend on and link against > libcommon.a and $(LIBBACKTRACE). > * genmatch.cc: Include pretty-print.h and input.h. > (ggc_internal_cleared_alloc, ggc_free): Remove. > (fatal): New function. > (line_table): Remove. > (linemap_client_expand_location_to_spelling_point): Remove. > (diagnostic_cb): Use gcc_diag rather than printf format. Use > pp_format_verbatim on a temporary pretty_printer instead of > vfprintf. > (fatal_at, warning_at): Use gcc_diag rather than printf format. > (output_line_directive): Rename location_hash to loc_hash. > (parser::eat_ident, parser::parse_operation, parser::parse_expr, > parser::parse_pattern, parser::finish_match_operand): Fix up > -Wformat-diag warnings. > gcc/c-family/ > * c-lex.cc (c_common_has_attribute, > c_common_lex_availability_macro): Fix up -Wformat-diag warnings. > gcc/testsuite/ > * c-c++-common/cpp/counter-2.c: Adjust expected diagnostics for > libcpp diagnostic formatting changes. > * c-c++-common/cpp/embed-3.c: Likewise. > * c-c++-common/cpp/embed-4.c: Likewise. > * c-c++-common/cpp/embed-16.c: Likewise. > * c-c++-common/cpp/embed-18.c: Likewise. > * c-c++-common/cpp/eof-2.c: Likewise. > * c-c++-common/cpp/eof-3.c: Likewise. > * c-c++-common/cpp/fmax-include-depth.c: Likewise. > * c-c++-common/cpp/has-builtin.c: Likewise. > * c-c++-common/cpp/line-2.c: Likewise. > * c-c++-common/cpp/line-3.c: Likewise. > * c-c++-common/cpp/macro-arg-count-1.c: Likewise. > * c-c++-common/cpp/macro-arg-count-2.c: Likewise. > * c-c++-common/cpp/macro-ranges.c: Likewise. > * c-c++-common/cpp/named-universal-char-escape-4.c: Likewise. > * c-c++-common/cpp/named-universal-char-escape-5.c: Likewise. > * c-c++-common/cpp/pr88974.c: Likewise. > * c-c++-common/cpp/va-opt-error.c: Likewise. > * c-c++-common/cpp/va-opt-pedantic.c: Likewise. > * c-c++-common/cpp/Winvalid-utf8-1.c: Likewise. > * c-c++-common/cpp/Winvalid-utf8-2.c: Likewise. > * c-c++-common/cpp/Winvalid-utf8-3.c: Likewise. > * c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c: > Likewise. > * c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c: > Likewise. > * c-c++-common/pr68833-3.c: Likewise. > * c-c++-common/raw-string-directive-1.c: Likewise. > * gcc.dg/analyzer/named-constants-Wunused-macros.c: Likewise. > * gcc.dg/binary-constants-4.c: Likewise. > * gcc.dg/builtin-redefine.c: Likewise. > * gcc.dg/cpp/19951025-1.c: Likewise. > * gcc.dg/cpp/c11-warning-1.c: Likewise. > * gcc.dg/cpp/c11-warning-2.c: Likewise. > * gcc.dg/cpp/c11-warning-3.c: Likewise. > * gcc.dg/cpp/c23-elifdef-2.c: Likewise. > * gcc.dg/cpp/c23-warning-2.c: Likewise. > * gcc.dg/cpp/embed-2.c: Likewise. > * gcc.dg/cpp/embed-3.c: Likewise. > * gcc.dg/cpp/embed-4.c: Likewise. > * gcc.dg/cpp/expr.c: Likewise. > * gcc.dg/cpp/gnu11-elifdef-2.c: Likewise. > * gcc.dg/cpp/gnu11-elifdef-3.c: Likewise. > * gcc.dg/cpp/gnu11-elifdef-4.c: Likewise. > * gcc.dg/cpp/gnu11-warning-1.c: Likewise. > * gcc.dg/cpp/gnu11-warning-2.c: Likewise. > * gcc.dg/cpp/gnu11-warning-3.c: Likewise. > * gcc.dg/cpp/gnu23-warning-2.c: Likewise. > * gcc.dg/cpp/include6.c: Likewise. > * gcc.dg/cpp/pr35322.c: Likewise. > * gcc.dg/cpp/tr-warn6.c: Likewise. > * gcc.dg/cpp/undef2.c: Likewise. > * gcc.dg/cpp/warn-comments.c: Likewise. > * gcc.dg/cpp/warn-comments-2.c: Likewise. > * gcc.dg/cpp/warn-comments-3.c: Likewise. > * gcc.dg/cpp/warn-cxx-compat.c: Likewise. > * gcc.dg/cpp/warn-cxx-compat-2.c: Likewise. > * gcc.dg/cpp/warn-deprecated.c: Likewise. > * gcc.dg/cpp/warn-deprecated-2.c: Likewise. > * gcc.dg/cpp/warn-long-long.c: Likewise. > * gcc.dg/cpp/warn-long-long-2.c: Likewise. > * gcc.dg/cpp/warn-normalized-1.c: Likewise. > * gcc.dg/cpp/warn-normalized-2.c: Likewise. > * gcc.dg/cpp/warn-normalized-3.c: Likewise. > * gcc.dg/cpp/warn-normalized-4-bytes.c: Likewise. > * gcc.dg/cpp/warn-normalized-4-unicode.c: Likewise. > * gcc.dg/cpp/warn-redefined.c: Likewise. > * gcc.dg/cpp/warn-redefined-2.c: Likewise. > * gcc.dg/cpp/warn-traditional.c: Likewise. > * gcc.dg/cpp/warn-traditional-2.c: Likewise. > * gcc.dg/cpp/warn-trigraphs-1.c: Likewise. > * gcc.dg/cpp/warn-trigraphs-2.c: Likewise. > * gcc.dg/cpp/warn-trigraphs-3.c: Likewise. > * gcc.dg/cpp/warn-trigraphs-4.c: Likewise. > * gcc.dg/cpp/warn-undef.c: Likewise. > * gcc.dg/cpp/warn-undef-2.c: Likewise. > * gcc.dg/cpp/warn-unused-macros.c: Likewise. > * gcc.dg/cpp/warn-unused-macros-2.c: Likewise. > * gcc.dg/pch/counter-2.c: Likewise. > * g++.dg/cpp0x/udlit-error1.C: Likewise. > * g++.dg/cpp23/named-universal-char-escape1.C: Likewise. > * g++.dg/cpp23/named-universal-char-escape2.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-1.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-2.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-3.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-4.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-5.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-6.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-7.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-8.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-9.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-10.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-11.C: Likewise. > * g++.dg/cpp23/Winvalid-utf8-12.C: Likewise. > * g++.dg/cpp/elifdef-3.C: Likewise. > * g++.dg/cpp/elifdef-5.C: Likewise. > * g++.dg/cpp/elifdef-6.C: Likewise. > * g++.dg/cpp/elifdef-7.C: Likewise. > * g++.dg/cpp/embed-1.C: Likewise. > * g++.dg/cpp/embed-2.C: Likewise. > * g++.dg/cpp/pedantic-errors.C: Likewise. > * g++.dg/cpp/warning-1.C: Likewise. > * g++.dg/cpp/warning-2.C: Likewise. > * g++.dg/ext/bitint1.C: Likewise. > * g++.dg/ext/bitint2.C: Likewise. > > --- libcpp/include/cpplib.h.jj 2024-09-12 23:12:54.044423930 +0200 > +++ libcpp/include/cpplib.h 2024-09-12 23:13:32.245876199 +0200 > @@ -649,6 +649,13 @@ struct cpp_options > cpp_main_search main_search : 8; > }; > > +#if GCC_VERSION >= 3005 > +#define ATTRIBUTE_CPP_PPDIAG(m, n) \ > + __attribute__ ((__format__ (__gcc_diag__, m , n))) ATTRIBUTE_NONNULL(m) > +#else > +#define ATTRIBUTE_CPP_PPDIAG(m, n) ATTRIBUTE_NONNULL(m) > +#endif > + > /* Diagnostic levels. To get a diagnostic without associating a > position in the translation unit with it, use cpp_error_with_line > with a line number of zero. */ > @@ -754,7 +761,7 @@ struct cpp_callbacks > enum cpp_warning_reason, > rich_location *, > const char *, va_list *) > - ATTRIBUTE_FPTR_PRINTF(5,0); > + ATTRIBUTE_CPP_PPDIAG (5,0); > > /* Callbacks for when a macro is expanded, or tested (whether > defined or not at the time) in #ifdef, #ifndef or "defined". */ > @@ -1351,24 +1359,24 @@ cpp_num cpp_num_sign_extend (cpp_num, si > /* Output a diagnostic of some kind. */ > extern bool cpp_error (cpp_reader *, enum cpp_diagnostic_level, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_3; > + ATTRIBUTE_CPP_PPDIAG (3, 4); > extern bool cpp_warning (cpp_reader *, enum cpp_warning_reason, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_3; > + ATTRIBUTE_CPP_PPDIAG (3, 4); > extern bool cpp_pedwarning (cpp_reader *, enum cpp_warning_reason, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_3; > + ATTRIBUTE_CPP_PPDIAG (3, 4); > extern bool cpp_warning_syshdr (cpp_reader *, enum cpp_warning_reason reason, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_3; > + ATTRIBUTE_CPP_PPDIAG (3, 4); > > /* As their counterparts above, but use RICHLOC. */ > extern bool cpp_warning_at (cpp_reader *, enum cpp_warning_reason, > rich_location *richloc, const char *msgid, ...) > - ATTRIBUTE_PRINTF_4; > + ATTRIBUTE_CPP_PPDIAG (4, 5); > extern bool cpp_pedwarning_at (cpp_reader *, enum cpp_warning_reason, > rich_location *richloc, const char *msgid, ...) > - ATTRIBUTE_PRINTF_4; > + ATTRIBUTE_CPP_PPDIAG (4, 5); > > /* Output a diagnostic with "MSGID: " preceding the > error string of errno. No location is printed. */ > @@ -1385,27 +1393,27 @@ extern bool cpp_errno_filename (cpp_read > extern bool cpp_error_with_line (cpp_reader *, enum cpp_diagnostic_level, > location_t, unsigned, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_5; > + ATTRIBUTE_CPP_PPDIAG (5, 6); > extern bool cpp_warning_with_line (cpp_reader *, enum cpp_warning_reason, > location_t, unsigned, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_5; > + ATTRIBUTE_CPP_PPDIAG (5, 6); > extern bool cpp_pedwarning_with_line (cpp_reader *, enum cpp_warning_reason, > location_t, unsigned, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_5; > + ATTRIBUTE_CPP_PPDIAG (5, 6); > extern bool cpp_warning_with_line_syshdr (cpp_reader *, enum cpp_warning_reason, > location_t, unsigned, > const char *msgid, ...) > - ATTRIBUTE_PRINTF_5; > + ATTRIBUTE_CPP_PPDIAG (5, 6); > > extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level, > location_t src_loc, const char *msgid, ...) > - ATTRIBUTE_PRINTF_4; > + ATTRIBUTE_CPP_PPDIAG (4, 5); > > extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level, > rich_location *richloc, const char *msgid, ...) > - ATTRIBUTE_PRINTF_4; > + ATTRIBUTE_CPP_PPDIAG (4, 5); > > /* In lex.cc */ > extern int cpp_ideq (const cpp_token *, const char *); > --- libcpp/Makefile.in.jj 2024-06-03 20:17:52.323099467 +0200 > +++ libcpp/Makefile.in 2024-09-12 23:13:32.244876213 +0200 > @@ -263,7 +263,7 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES) > --keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \ > --copyright-holder="Free Software Foundation, Inc." \ > --msgid-bugs-address="https://gcc.gnu.org/bugs/" \ > - --language=c -o po/$(PACKAGE).pot.tmp $^ > + --language=GCC-source -o po/$(PACKAGE).pot.tmp $^ > sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot > rm po/$(PACKAGE).pot.tmp > > --- libcpp/errors.cc.jj 2024-01-03 22:33:38.347691673 +0100 > +++ libcpp/errors.cc 2024-09-12 23:13:32.246876185 +0200 > @@ -54,7 +54,7 @@ cpp_diagnostic_get_current_location (cpp > > /* Print a diagnostic at the given location. */ > > -ATTRIBUTE_FPTR_PRINTF(5,0) > +ATTRIBUTE_CPP_PPDIAG (5, 0) > static bool > cpp_diagnostic_at (cpp_reader * pfile, enum cpp_diagnostic_level level, > enum cpp_warning_reason reason, rich_location *richloc, > @@ -71,7 +71,7 @@ cpp_diagnostic_at (cpp_reader * pfile, e > > /* Print a diagnostic at the location of the previously lexed token. */ > > -ATTRIBUTE_FPTR_PRINTF(4,0) > +ATTRIBUTE_CPP_PPDIAG (4, 0) > static bool > cpp_diagnostic (cpp_reader * pfile, enum cpp_diagnostic_level level, > enum cpp_warning_reason reason, > @@ -190,7 +190,7 @@ cpp_pedwarning_at (cpp_reader * pfile, e > > /* Print a diagnostic at a specific location. */ > > -ATTRIBUTE_FPTR_PRINTF(6,0) > +ATTRIBUTE_CPP_PPDIAG (6, 0) > static bool > cpp_diagnostic_with_line (cpp_reader * pfile, enum cpp_diagnostic_level level, > enum cpp_warning_reason reason, > --- libcpp/charset.cc.jj 2024-09-12 23:12:54.042423959 +0200 > +++ libcpp/charset.cc 2024-09-12 23:13:32.241876256 +0200 > @@ -867,8 +867,8 @@ cpp_host_to_exec_charset (cpp_reader *pf > if (c > LAST_POSSIBLY_BASIC_SOURCE_CHAR) > { > cpp_error (pfile, CPP_DL_ICE, > - "character 0x%lx is not in the basic source character set\n", > - (unsigned long)c); > + "character 0x%lx is not in the basic source character set", > + (unsigned long) c); > return 0; > } > > @@ -1550,10 +1550,10 @@ _cpp_valid_ucn (cpp_reader *pfile, const > else if (CPP_OPTION (pfile, cpp_warn_c90_c99_compat) > 0 > && !CPP_OPTION (pfile, cplusplus)) > cpp_error (pfile, CPP_DL_WARNING, > - "C99's universal character names are incompatible with C90"); > + "C99%'s universal character names are incompatible with C90"); > else if (CPP_WTRADITIONAL (pfile) && identifier_pos == 0) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "the meaning of '\\%c' is different in traditional C", > + "the meaning of %<\\%c%> is different in traditional C", > (int) str[-1]); > > result = 0; > @@ -1592,7 +1592,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > *cp = 0; > return false; > } > - cpp_error (pfile, CPP_DL_ERROR, "'\\N' not followed by '{'"); > + cpp_error (pfile, CPP_DL_ERROR, "%<\\N%> not followed by %<{%>"); > } > else > { > @@ -1656,13 +1656,13 @@ _cpp_valid_ucn (cpp_reader *pfile, const > && (!CPP_OPTION (pfile, delimited_escape_seqs) > || !strict)) > ret = cpp_warning (pfile, CPP_W_UNICODE, > - "\\N{%.*s} is not a valid " > + "%<\\N{%.*s}%> is not a valid " > "universal character; treating it " > "as separate tokens", > (int) (str - name), name); > else > cpp_error (pfile, CPP_DL_ERROR, > - "\\N{%.*s} is not a valid universal " > + "%<\\N{%.*s}%> is not a valid universal " > "character", (int) (str - name), name); > > /* Try to do a loose name lookup according to > @@ -1672,7 +1672,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > str - name, canon_name); > if (result != (cppchar_t) -1 && ret) > cpp_error (pfile, CPP_DL_NOTE, > - "did you mean \\N{%s}?", canon_name); > + "did you mean %<\\N{%s}%>?", canon_name); > else > result = 0xC0; > if (identifier_pos > @@ -1690,7 +1690,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > else if (identifier_pos) > { > cpp_warning (pfile, CPP_W_UNICODE, > - "'\\N{' not terminated with '}' after %.*s; " > + "%<\\N{%> not terminated with %<}%> after %.*s; " > "treating it as separate tokens", > (int) (str - base), base); > *cp = 0; > @@ -1699,7 +1699,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > else > { > cpp_error (pfile, CPP_DL_ERROR, > - "'\\N{' not terminated with '}' after %.*s", > + "%<\\N{%> not terminated with %<}%> after %.*s", > (int) (str - base), base); > result = 1; > } > @@ -1707,7 +1707,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > } > else > { > - cpp_error (pfile, CPP_DL_ICE, "In _cpp_valid_ucn but not a UCN"); > + cpp_error (pfile, CPP_DL_ICE, "in %<_cpp_valid_ucn%> but not a UCN"); > length = 4; > } > > @@ -1775,7 +1775,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > { > if (delimited) > cpp_warning (pfile, CPP_W_UNICODE, > - "'\\u{' not terminated with '}' after %.*s; " > + "%<\\u{%> not terminated with %<}%> after %.*s; " > "treating it as separate tokens", > (int) (str - base), base); > *cp = 0; > @@ -1791,7 +1791,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > (int) (str - base), base); > else > cpp_error (pfile, CPP_DL_ERROR, > - "'\\u{' not terminated with '}' after %.*s", > + "%<\\u{%> not terminated with %<}%> after %.*s", > (int) (str - base), base); > result = 1; > } > @@ -1821,7 +1821,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const > if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping) > { > CPP_OPTION (pfile, warn_dollars) = 0; > - cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number"); > + cpp_error (pfile, CPP_DL_PEDWARN, "%<$%> in identifier or number"); > } > NORMALIZE_STATE_UPDATE_IDNUM (nst, result); > } > @@ -2096,7 +2096,7 @@ convert_hex (cpp_reader *pfile, const uc > > if (CPP_WTRADITIONAL (pfile)) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "the meaning of '\\x' is different in traditional C"); > + "the meaning of %<\\x%> is different in traditional C"); > > /* Skip 'x'. */ > from++; > @@ -2144,13 +2144,13 @@ convert_hex (cpp_reader *pfile, const uc > if (!digits_found) > { > cpp_error (pfile, CPP_DL_ERROR, > - "\\x used with no following hex digits"); > + "%<\\x%> used with no following hex digits"); > return from; > } > else if (delimited) > { > cpp_error (pfile, CPP_DL_ERROR, > - "'\\x{' not terminated with '}' after %.*s", > + "%<\\x{%> not terminated with %<}%> after %.*s", > (int) (from - base), base); > return from; > } > @@ -2201,7 +2201,7 @@ convert_oct (cpp_reader *pfile, const uc > from++; > extend_char_range (&char_range, loc_reader); > if (from == limit || *from != '{') > - cpp_error (pfile, CPP_DL_ERROR, "'\\o' not followed by '{'"); > + cpp_error (pfile, CPP_DL_ERROR, "%<\\o%> not followed by %<}%>"); > else > { > from++; > @@ -2247,7 +2247,7 @@ convert_oct (cpp_reader *pfile, const uc > else > { > cpp_error (pfile, CPP_DL_ERROR, > - "'\\o{' not terminated with '}' after %.*s", > + "%<\\o{%> not terminated with %<}%> after %.*s", > (int) (from - base), base); > return from; > } > @@ -2309,7 +2309,7 @@ convert_escape (cpp_reader *pfile, const > if (uneval) > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > "numeric escape sequence in unevaluated string: " > - "'\\%c'", (int) c); > + "%<\\%c%>", (int) c); > return convert_hex (pfile, from, limit, tbuf, cvt, > char_range, loc_reader, ranges); > > @@ -2319,7 +2319,7 @@ convert_escape (cpp_reader *pfile, const > if (uneval) > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > "numeric escape sequence in unevaluated string: " > - "'\\%c'", (int) c); > + "%<\\%c%>", (int) c); > return convert_oct (pfile, from, limit, tbuf, cvt, > char_range, loc_reader, ranges); > > @@ -2346,13 +2346,13 @@ convert_escape (cpp_reader *pfile, const > case 'a': > if (CPP_WTRADITIONAL (pfile)) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "the meaning of '\\a' is different in traditional C"); > + "the meaning of %<\\a%> is different in traditional C"); > c = charconsts[0]; > break; > > case 'e': case 'E': > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > - "non-ISO-standard escape sequence, '\\%c'", (int) c); > + "non-ISO-standard escape sequence, %<\\%c%>", (int) c); > c = charconsts[2]; > break; > > @@ -2360,7 +2360,7 @@ convert_escape (cpp_reader *pfile, const > unknown: > if (ISGRAPH (c)) > cpp_error (pfile, CPP_DL_PEDWARN, > - "unknown escape sequence: '\\%c'", (int) c); > + "unknown escape sequence: %<\\%c%>", (int) c); > else > { > encoding_rich_location rich_loc (pfile); > @@ -2370,7 +2370,7 @@ convert_escape (cpp_reader *pfile, const > char buf[32]; > sprintf(buf, "%03o", (int) c); > cpp_error_at (pfile, CPP_DL_PEDWARN, &rich_loc, > - "unknown escape sequence: '\\%s'", buf); > + "unknown escape sequence: %<\\%s%>", buf); > } > } > > @@ -2655,7 +2655,7 @@ cpp_interpret_string_ranges (cpp_reader > bool (*saved_diagnostic_handler) (cpp_reader *, enum cpp_diagnostic_level, > enum cpp_warning_reason, rich_location *, > const char *, va_list *) > - ATTRIBUTE_FPTR_PRINTF(5,0); > + ATTRIBUTE_CPP_PPDIAG (5, 0); > > saved_diagnostic_handler = pfile->cb.diagnostic; > pfile->cb.diagnostic = noop_diagnostic_cb; > @@ -2704,7 +2704,7 @@ count_source_chars (cpp_reader *pfile, c > bool (*saved_diagnostic_handler) (cpp_reader *, enum cpp_diagnostic_level, > enum cpp_warning_reason, rich_location *, > const char *, va_list *) > - ATTRIBUTE_FPTR_PRINTF(5,0); > + ATTRIBUTE_CPP_PPDIAG (5, 0); > saved_diagnostic_handler = pfile->cb.diagnostic; > pfile->cb.diagnostic = noop_diagnostic_cb; > convert_f save_func = pfile->narrow_cset_desc.func; > @@ -2803,7 +2803,7 @@ narrow_str_to_charconst (cpp_reader *pfi > if (type != CPP_UTF8CHAR) > cpp_error (pfile, CPP_DL_WARNING, > "multi-character literal with %ld characters exceeds " > - "'int' size of %ld bytes", (long) i, (long) max_chars); > + "%<int%> size of %ld bytes", (long) i, (long) max_chars); > else if (src_chars > 2) > cpp_error (pfile, CPP_DL_ERROR, > "multi-character literal cannot have an encoding prefix"); > --- libcpp/directives.cc.jj 2024-09-12 23:12:54.042423959 +0200 > +++ libcpp/directives.cc 2024-09-13 10:50:58.586398187 +0200 > @@ -235,7 +235,7 @@ check_eol_1 (cpp_reader *pfile, bool exp > if (! SEEN_EOL () && (expand > ? cpp_get_token (pfile) > : _cpp_lex_token (pfile))->type != CPP_EOF) > - cpp_pedwarning (pfile, reason, "extra tokens at end of #%s directive", > + cpp_pedwarning (pfile, reason, "extra tokens at end of %<#%s%> directive", > pfile->directive->name); > } > > @@ -387,8 +387,8 @@ directive_diagnostics (cpp_reader *pfile > if (dir->origin == EXTENSION > && !(dir == &dtable[T_IMPORT] && CPP_OPTION (pfile, objc))) > warned > - = cpp_pedwarning (pfile, CPP_W_PEDANTIC, "#%s is a GCC extension", > - dir->name); > + = cpp_pedwarning (pfile, CPP_W_PEDANTIC, > + "%<#%s%> is a GCC extension", dir->name); > if (!warned && dir == &dtable[T_WARNING]) > { > if (CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, warning_directive)) > @@ -396,18 +396,18 @@ directive_diagnostics (cpp_reader *pfile > if (CPP_OPTION (pfile, cplusplus)) > warned > = cpp_pedwarning (pfile, CPP_W_CXX23_EXTENSIONS, > - "#%s before C++23 is a GCC extension", > + "%<#%s%> before C++23 is a GCC extension", > dir->name); > else > warned > = cpp_pedwarning (pfile, CPP_W_PEDANTIC, > - "#%s before C23 is a GCC extension", > + "%<#%s%> before C23 is a GCC extension", > dir->name); > } > > if (!warned && CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0) > warned = cpp_warning (pfile, CPP_W_C11_C23_COMPAT, > - "#%s before C23 is a GCC extension", > + "%<#%s%> before C23 is a GCC extension", > dir->name); > } > > @@ -415,7 +415,7 @@ directive_diagnostics (cpp_reader *pfile > || (dir == &dtable[T_IMPORT] && !CPP_OPTION (pfile, objc))) > && !warned) > cpp_warning (pfile, CPP_W_DEPRECATED, > - "#%s is a deprecated GCC extension", dir->name); > + "%<#%s%> is a deprecated GCC extension", dir->name); > } > > /* Traditionally, a directive is ignored unless its # is in > @@ -428,15 +428,15 @@ directive_diagnostics (cpp_reader *pfile > { > if (dir == &dtable[T_ELIF]) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "suggest not using #elif in traditional C"); > + "suggest not using %<#elif%> in traditional C"); > else if (indented && dir->origin == KANDR) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "traditional C ignores #%s with the # indented", > + "traditional C ignores %<#%s%> with the %<#%> indented", > dir->name); > else if (!indented && dir->origin != KANDR) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "suggest hiding #%s from traditional C with an indented #", > - dir->name); > + "suggest hiding %<#%s%> from traditional C with an " > + "indented %<#%>", dir->name); > } > } > > @@ -648,17 +648,17 @@ lex_macro_node (cpp_reader *pfile, bool > if (is_def_or_undef > && node == pfile->spec_nodes.n_defined) > cpp_error (pfile, CPP_DL_ERROR, > - "\"%s\" cannot be used as a macro name", > + "%qs cannot be used as a macro name", > NODE_NAME (node)); > else if (! (node->flags & NODE_POISONED)) > return node; > } > else if (token->flags & NAMED_OP) > cpp_error (pfile, CPP_DL_ERROR, > - "\"%s\" cannot be used as a macro name as it is an operator in C++", > - NODE_NAME (token->val.node.node)); > + "%qs cannot be used as a macro name as it is an operator " > + "in C++", NODE_NAME (token->val.node.node)); > else if (token->type == CPP_EOF) > - cpp_error (pfile, CPP_DL_ERROR, "no macro name given in #%s directive", > + cpp_error (pfile, CPP_DL_ERROR, "no macro name given in %<#%s%> directive", > pfile->directive->name); > else > cpp_error (pfile, CPP_DL_ERROR, "macro names must be identifiers"); > @@ -714,11 +714,11 @@ do_undef (cpp_reader *pfile) > { > if (node->flags & NODE_WARN) > cpp_error (pfile, CPP_DL_WARNING, > - "undefining \"%s\"", NODE_NAME (node)); > + "undefining %qs", NODE_NAME (node)); > else if (cpp_builtin_macro_p (node) > && CPP_OPTION (pfile, warn_builtin_macro_redefined)) > cpp_warning (pfile, CPP_W_BUILTIN_MACRO_REDEFINED, > - "undefining \"%s\"", NODE_NAME (node)); > + "undefining %qs", NODE_NAME (node)); > > if (node->value.macro > && CPP_OPTION (pfile, warn_unused_macros)) > @@ -775,7 +775,8 @@ glue_header_name (cpp_reader *pfile) > break; > if (token->type == CPP_EOF) > { > - cpp_error (pfile, CPP_DL_ERROR, "missing terminating > character"); > + cpp_error (pfile, CPP_DL_ERROR, > + "missing terminating %<>%> character"); > break; > } > > @@ -831,11 +832,11 @@ parse_include (cpp_reader *pfile, int *p > const unsigned char *dir; > > if (pfile->directive == &dtable[T_PRAGMA]) > - dir = UC"pragma dependency"; > + dir = UC"pragma GCC dependency"; > else > dir = pfile->directive->name; > - cpp_error (pfile, CPP_DL_ERROR, "#%s expects \"FILENAME\" or <FILENAME>", > - dir); > + cpp_error (pfile, CPP_DL_ERROR, > + "%<#%s%> expects %<\"FILENAME\"%> or %<<FILENAME>%>", dir); > > return NULL; > } > @@ -890,8 +891,8 @@ do_include_common (cpp_reader *pfile, en > if (pfile->line_table->depth >= CPP_OPTION (pfile, max_include_depth)) > cpp_error (pfile, > CPP_DL_ERROR, > - "#include nested depth %u exceeds maximum of %u" > - " (use -fmax-include-depth=DEPTH to increase the maximum)", > + "%<#include%> nested depth %u exceeds maximum of %u" > + " (use %<-fmax-include-depth=DEPTH%> to increase the maximum)", > pfile->line_table->depth, > CPP_OPTION (pfile, max_include_depth)); > else > @@ -935,7 +936,7 @@ do_include_next (cpp_reader *pfile) > if (_cpp_in_main_source_file (pfile)) > { > cpp_error (pfile, CPP_DL_WARNING, > - "#include_next in primary source file"); > + "%<#include_next%> in primary source file"); > type = IT_INCLUDE; > } > do_include_common (pfile, type); > @@ -1090,7 +1091,7 @@ _cpp_parse_embed_params (cpp_reader *pfi > { > if (params->has_embed) > { > - cpp_error (pfile, CPP_DL_ERROR, "expected ')'"); > + cpp_error (pfile, CPP_DL_ERROR, "expected %<)%>"); > return false; > } > } > @@ -1107,8 +1108,9 @@ _cpp_parse_embed_params (cpp_reader *pfi > if (!params->has_embed) > cpp_error_with_line (pfile, CPP_DL_ERROR, > params->base64.base_run.base->src_loc, 0, > - "'gnu::base64' parameter conflicts with " > - "'limit' or 'gnu::offset' parameters"); > + "%<gnu::base64%> parameter conflicts " > + "with %<limit%> or %<gnu::offset%> " > + "parameters"); > } > else if (params->base64.count == 0 > && CPP_OPTION (pfile, preprocessed)) > @@ -1116,7 +1118,7 @@ _cpp_parse_embed_params (cpp_reader *pfi > ret = false; > if (!params->has_embed) > cpp_error_with_line (pfile, CPP_DL_ERROR, params->loc, 0, > - "'gnu::base64' parameter required in " > + "%<gnu::base64%> parameter required in " > "preprocessed source"); > } > return ret; > @@ -1137,7 +1139,7 @@ _cpp_parse_embed_params (cpp_reader *pfi > token = _cpp_get_token_no_padding (pfile); > if (token->type != CPP_COLON) > { > - cpp_error (pfile, CPP_DL_ERROR, "expected ':'"); > + cpp_error (pfile, CPP_DL_ERROR, "expected %<:%>"); > return false; > } > token = _cpp_get_token_no_padding (pfile); > @@ -1225,7 +1227,7 @@ _cpp_parse_embed_params (cpp_reader *pfi > } > if (param_kind != (size_t) -1 && token->type != CPP_OPEN_PAREN) > cpp_error_with_line (pfile, CPP_DL_ERROR, loc, 0, > - "expected '('"); > + "expected %<(%>"); > else if (param_kind == EMBED_PARAM_LIMIT > || param_kind == EMBED_PARAM_GNU_OFFSET) > { > @@ -1238,7 +1240,7 @@ _cpp_parse_embed_params (cpp_reader *pfi > { > if (res > INTTYPE_MAXIMUM (off_t)) > cpp_error_with_line (pfile, CPP_DL_ERROR, loc, 0, > - "too large 'gnu::offset' argument"); > + "too large %<gnu::offset%> argument"); > else > params->offset = res; > } > @@ -1280,7 +1282,7 @@ _cpp_parse_embed_params (cpp_reader *pfi > while (token->type == CPP_STRING); > if (token->type != CPP_CLOSE_PAREN) > cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc, 0, > - "expected ')'"); > + "expected %<)%>"); > } > else > { > @@ -1330,7 +1332,7 @@ do_embed (cpp_reader *pfile) > if (CPP_OPTION (pfile, traditional)) > { > cpp_error (pfile, CPP_DL_ERROR, /* FIXME should be DL_SORRY */ > - "#embed not supported in traditional C"); > + "%<#embed%> not supported in traditional C"); > skip_rest_of_line (pfile); > goto done; > } > @@ -1339,10 +1341,10 @@ do_embed (cpp_reader *pfile) > { > if (CPP_OPTION (pfile, cplusplus)) > cpp_error (pfile, CPP_DL_PEDWARN, > - "#%s is a GCC extension", "embed"); > + "%<#%s%> is a GCC extension", "embed"); > else > cpp_error (pfile, CPP_DL_PEDWARN, > - "#%s before C23 is a GCC extension", "embed"); > + "%<#%s%> before C23 is a GCC extension", "embed"); > } > > fname = parse_include (pfile, &angle_brackets, NULL, ¶ms.loc); > @@ -1400,7 +1402,7 @@ read_flag (cpp_reader *pfile, unsigned i > } > > if (token->type != CPP_EOF) > - cpp_error (pfile, CPP_DL_ERROR, "invalid flag \"%s\" in line directive", > + cpp_error (pfile, CPP_DL_ERROR, "invalid flag %qs in line directive", > cpp_token_as_text (pfile, token)); > return 0; > } > @@ -1467,10 +1469,11 @@ do_line (cpp_reader *pfile) > &new_lineno, &wrapped)) > { > if (token->type == CPP_EOF) > - cpp_error (pfile, CPP_DL_ERROR, "unexpected end of file after #line"); > + cpp_error (pfile, CPP_DL_ERROR, > + "unexpected end of file after %<#line%>"); > else > cpp_error (pfile, CPP_DL_ERROR, > - "\"%s\" after #line is not a positive integer", > + "%qs after %<#line%> is not a positive integer", > cpp_token_as_text (pfile, token)); > return; > } > @@ -1492,7 +1495,7 @@ do_line (cpp_reader *pfile) > } > else if (token->type != CPP_EOF) > { > - cpp_error (pfile, CPP_DL_ERROR, "\"%s\" is not a valid filename", > + cpp_error (pfile, CPP_DL_ERROR, "%qs is not a valid filename", > cpp_token_as_text (pfile, token)); > return; > } > @@ -1533,7 +1536,7 @@ do_linemarker (cpp_reader *pfile) > /* Unlike #line, there does not seem to be a way to get an EOF > here. So, it should be safe to always spell the token. */ > cpp_error (pfile, CPP_DL_ERROR, > - "\"%s\" after # is not a positive integer", > + "%qs after # is not a positive integer", > cpp_token_as_text (pfile, token)); > return; > } > @@ -1573,7 +1576,7 @@ do_linemarker (cpp_reader *pfile) > } > else if (token->type != CPP_EOF) > { > - cpp_error (pfile, CPP_DL_ERROR, "\"%s\" is not a valid filename", > + cpp_error (pfile, CPP_DL_ERROR, "%qs is not a valid filename", > cpp_token_as_text (pfile, token)); > return; > } > @@ -1600,7 +1603,7 @@ do_linemarker (cpp_reader *pfile) > if (!from) > { > cpp_warning (pfile, CPP_W_NONE, > - "file \"%s\" linemarker ignored due to " > + "file %qs linemarker ignored due to " > "incorrect nesting", new_file); > return; > } > @@ -1769,7 +1772,7 @@ register_pragma_1 (cpp_reader *pfile, co > else if (entry->allow_expansion != allow_name_expansion) > { > cpp_error (pfile, CPP_DL_ICE, > - "registering pragmas in namespace \"%s\" with mismatched " > + "registering pragmas in namespace %qs with mismatched " > "name expansion", space); > return NULL; > } > @@ -1778,7 +1781,7 @@ register_pragma_1 (cpp_reader *pfile, co > else if (allow_name_expansion) > { > cpp_error (pfile, CPP_DL_ICE, > - "registering pragma \"%s\" with name expansion " > + "registering pragma %qs with name expansion " > "and no namespace", name); > return NULL; > } > @@ -1796,13 +1799,14 @@ register_pragma_1 (cpp_reader *pfile, co > if (entry->is_nspace) > clash: > cpp_error (pfile, CPP_DL_ICE, > - "registering \"%s\" as both a pragma and a pragma namespace", > + "registering %qs as both a pragma and a pragma namespace", > NODE_NAME (node)); > else if (space) > - cpp_error (pfile, CPP_DL_ICE, "#pragma %s %s is already registered", > + cpp_error (pfile, CPP_DL_ICE, "%<#pragma %s %s%> is already registered", > space, name); > else > - cpp_error (pfile, CPP_DL_ICE, "#pragma %s is already registered", name); > + cpp_error (pfile, CPP_DL_ICE, "%<#pragma %s%> is already registered", > + name); > > return NULL; > } > @@ -2049,7 +2053,7 @@ static void > do_pragma_once (cpp_reader *pfile) > { > if (_cpp_in_main_source_file (pfile)) > - cpp_error (pfile, CPP_DL_WARNING, "#pragma once in main file"); > + cpp_error (pfile, CPP_DL_WARNING, "%<#pragma once%> in main file"); > > check_eol (pfile, false); > _cpp_mark_file_once_only (pfile, pfile->buffer->file); > @@ -2072,7 +2076,7 @@ do_pragma_push_macro (cpp_reader *pfile) > { > location_t src_loc = pfile->cur_token[-1].src_loc; > cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, > - "invalid #pragma push_macro directive"); > + "invalid %<#pragma push_macro%> directive"); > check_eol (pfile, false); > skip_rest_of_line (pfile); > return; > @@ -2129,7 +2133,7 @@ do_pragma_pop_macro (cpp_reader *pfile) > { > location_t src_loc = pfile->cur_token[-1].src_loc; > cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, > - "invalid #pragma pop_macro directive"); > + "invalid %<#pragma pop_macro%> directive"); > check_eol (pfile, false); > skip_rest_of_line (pfile); > return; > @@ -2184,7 +2188,7 @@ do_pragma_poison (cpp_reader *pfile) > if (tok->type != CPP_NAME) > { > cpp_error (pfile, CPP_DL_ERROR, > - "invalid #pragma GCC poison directive"); > + "invalid %<#pragma GCC poison%> directive"); > break; > } > > @@ -2193,7 +2197,7 @@ do_pragma_poison (cpp_reader *pfile) > continue; > > if (cpp_macro_p (hp)) > - cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro \"%s\"", > + cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro %qs", > NODE_NAME (hp)); > _cpp_free_definition (hp); > hp->flags |= NODE_POISONED | NODE_DIAGNOSTIC; > @@ -2215,7 +2219,7 @@ do_pragma_system_header (cpp_reader *pfi > { > if (_cpp_in_main_source_file (pfile)) > cpp_error (pfile, CPP_DL_WARNING, > - "#pragma system_header ignored outside include file"); > + "%<#pragma system_header%> ignored outside include file"); > else > { > check_eol (pfile, false); > @@ -2268,7 +2272,7 @@ do_pragma_warning_or_error (cpp_reader * > CPP_STRING) > || str.len == 0) > { > - cpp_error (pfile, CPP_DL_ERROR, "invalid \"#pragma GCC %s\" directive", > + cpp_error (pfile, CPP_DL_ERROR, "invalid %<#pragma GCC %s%> directive", > error ? "error" : "warning"); > return; > } > @@ -2476,7 +2480,7 @@ _cpp_do__Pragma (cpp_reader *pfile, loca > return 1; > } > cpp_error (pfile, CPP_DL_ERROR, > - "_Pragma takes a parenthesized string literal"); > + "%<_Pragma%> takes a parenthesized string literal"); > return 0; > } > > @@ -2559,12 +2563,12 @@ do_else (cpp_reader *pfile) > struct if_stack *ifs = buffer->if_stack; > > if (ifs == NULL) > - cpp_error (pfile, CPP_DL_ERROR, "#else without #if"); > + cpp_error (pfile, CPP_DL_ERROR, "%<#else%> without %<#if%>"); > else > { > if (ifs->type == T_ELSE) > { > - cpp_error (pfile, CPP_DL_ERROR, "#else after #else"); > + cpp_error (pfile, CPP_DL_ERROR, "%<#else%> after %<#else%>"); > cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0, > "the conditional began here"); > } > @@ -2592,12 +2596,13 @@ do_elif (cpp_reader *pfile) > struct if_stack *ifs = buffer->if_stack; > > if (ifs == NULL) > - cpp_error (pfile, CPP_DL_ERROR, "#%s without #if", pfile->directive->name); > + cpp_error (pfile, CPP_DL_ERROR, "%<#%s%> without %<#if%>", > + pfile->directive->name); > else > { > if (ifs->type == T_ELSE) > { > - cpp_error (pfile, CPP_DL_ERROR, "#%s after #else", > + cpp_error (pfile, CPP_DL_ERROR, "%<#%s%> after %<#else%>", > pfile->directive->name); > cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0, > "the conditional began here"); > @@ -2620,11 +2625,11 @@ do_elif (cpp_reader *pfile) > { > if (CPP_OPTION (pfile, cplusplus)) > cpp_pedwarning (pfile, CPP_W_CXX23_EXTENSIONS, > - "#%s before C++23 is a GCC extension", > + "%<#%s%> before C++23 is a GCC extension", > pfile->directive->name); > else > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > - "#%s before C23 is a GCC extension", > + "%<#%s%> before C23 is a GCC extension", > pfile->directive->name); > } > pfile->state.skipping = 1; > @@ -2659,11 +2664,13 @@ do_elif (cpp_reader *pfile) > { > if (CPP_OPTION (pfile, cplusplus)) > cpp_pedwarning (pfile, CPP_W_CXX23_EXTENSIONS, > - "#%s before C++23 is a GCC extension", > + "%<#%s%> before C++23 is a GCC " > + "extension", > pfile->directive->name); > else > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > - "#%s before C23 is a GCC extension", > + "%<#%s%> before C23 is a GCC " > + "extension", > pfile->directive->name); > } > pfile->state.skipping = skip; > @@ -2699,7 +2706,7 @@ do_endif (cpp_reader *pfile) > struct if_stack *ifs = buffer->if_stack; > > if (ifs == NULL) > - cpp_error (pfile, CPP_DL_ERROR, "#endif without #if"); > + cpp_error (pfile, CPP_DL_ERROR, "%<#endif%> without %<#if%>"); > else > { > /* Only check EOL if was not originally skipping. */ > @@ -2775,7 +2782,7 @@ parse_answer (cpp_reader *pfile, int typ > return true; > > cpp_error_with_line (pfile, CPP_DL_ERROR, pred_loc, 0, > - "missing '(' after predicate"); > + "missing %<(%> after predicate"); > return false; > } > > @@ -2793,7 +2800,7 @@ parse_answer (cpp_reader *pfile, int typ > > if (token->type == CPP_EOF) > { > - cpp_error (pfile, CPP_DL_ERROR, "missing ')' to complete answer"); > + cpp_error (pfile, CPP_DL_ERROR, "missing %<)%> to complete answer"); > return false; > } > > @@ -2805,7 +2812,7 @@ parse_answer (cpp_reader *pfile, int typ > > if (!count) > { > - cpp_error (pfile, CPP_DL_ERROR, "predicate's answer is empty"); > + cpp_error (pfile, CPP_DL_ERROR, "predicate%'s answer is empty"); > return false; > } > > @@ -2920,7 +2927,7 @@ do_assert (cpp_reader *pfile) > is not a duplicate. */ > if (*find_answer (node, answer)) > { > - cpp_error (pfile, CPP_DL_WARNING, "\"%s\" re-asserted", > + cpp_error (pfile, CPP_DL_WARNING, "%qs re-asserted", > NODE_NAME (node) + 1); > return; > } > @@ -3003,10 +3010,10 @@ cpp_define (cpp_reader *pfile, const cha > void > cpp_define_unused (cpp_reader *pfile, const char *str) > { > - unsigned char warn_unused_macros = CPP_OPTION (pfile, warn_unused_macros); > - CPP_OPTION (pfile, warn_unused_macros) = 0; > - cpp_define (pfile, str); > - CPP_OPTION (pfile, warn_unused_macros) = warn_unused_macros; > + unsigned char warn_unused_macros = CPP_OPTION (pfile, warn_unused_macros); > + CPP_OPTION (pfile, warn_unused_macros) = 0; > + cpp_define (pfile, str); > + CPP_OPTION (pfile, warn_unused_macros) = warn_unused_macros; > } > > /* Use to build macros to be run through cpp_define() as > --- libcpp/expr.cc.jj 2024-09-12 23:12:54.043423944 +0200 > +++ libcpp/expr.cc 2024-09-13 09:52:31.719800975 +0200 > @@ -678,10 +678,12 @@ cpp_classify_number (cpp_reader *pfile, > { > if (radix == 2) > SYNTAX_ERROR2_AT (virtual_location, > - "invalid digit \"%c\" in binary constant", '0' + max_digit); > + "invalid digit %<%c%> in binary constant", > + '0' + max_digit); > else > SYNTAX_ERROR2_AT (virtual_location, > - "invalid digit \"%c\" in octal constant", '0' + max_digit); > + "invalid digit %<%c%> in octal constant", > + '0' + max_digit); > } > > if (float_flag != NOT_FLOAT) > @@ -689,7 +691,7 @@ cpp_classify_number (cpp_reader *pfile, > if (radix == 2) > { > cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, > - "invalid prefix \"0b\" for floating constant"); > + "invalid prefix %<0b%> for floating constant"); > return CPP_N_INVALID; > } > > @@ -751,8 +753,8 @@ cpp_classify_number (cpp_reader *pfile, > else > { > cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, > - "invalid suffix \"%.*s\" on floating constant", > - (int) (limit - str), str); > + "invalid suffix %<%.*s%> on floating " > + "constant", (int) (limit - str), str); > return CPP_N_INVALID; > } > } > @@ -762,7 +764,7 @@ cpp_classify_number (cpp_reader *pfile, > && CPP_WTRADITIONAL (pfile) > && ! cpp_sys_macro_p (pfile)) > cpp_warning_with_line (pfile, CPP_W_TRADITIONAL, virtual_location, 0, > - "traditional C rejects the \"%.*s\" suffix", > + "traditional C rejects the %<%.*s%> suffix", > (int) (limit - str), str); > > /* A suffix for double is a GCC extension via decimal float support. > @@ -777,8 +779,8 @@ cpp_classify_number (cpp_reader *pfile, > if ((result & CPP_N_DFLOAT) && radix != 10) > { > cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, > - "invalid suffix \"%.*s\" with hexadecimal floating constant", > - (int) (limit - str), str); > + "invalid suffix %<%.*s%> with hexadecimal " > + "floating constant", (int) (limit - str), str); > return CPP_N_INVALID; > } > > @@ -791,11 +793,12 @@ cpp_classify_number (cpp_reader *pfile, > if (!CPP_OPTION (pfile, dfp_constants)) > cpp_pedwarning_with_line > (pfile, CPP_W_PEDANTIC, virtual_location, 0, > - "decimal float constants are a C23 feature"); > + "decimal floating constants are a C23 feature"); > else if (CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0) > cpp_warning_with_line (pfile, CPP_W_C11_C23_COMPAT, > virtual_location, 0, > - "decimal float constants are a C23 feature"); > + "decimal floating constants are a C23 " > + "feature"); > } > > result |= CPP_N_FLOATING; > @@ -814,8 +817,8 @@ cpp_classify_number (cpp_reader *pfile, > else > { > cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, > - "invalid suffix \"%.*s\" on integer constant", > - (int) (limit - str), str); > + "invalid suffix %<%.*s%> on integer " > + "constant", (int) (limit - str), str); > return CPP_N_INVALID; > } > } > @@ -831,7 +834,7 @@ cpp_classify_number (cpp_reader *pfile, > if (u_or_i || large) > cpp_warning_with_line (pfile, large ? CPP_W_LONG_LONG : CPP_W_TRADITIONAL, > virtual_location, 0, > - "traditional C rejects the \"%.*s\" suffix", > + "traditional C rejects the %<%.*s%> suffix", > (int) (limit - str), str); > } > > @@ -853,9 +856,10 @@ cpp_classify_number (cpp_reader *pfile, > if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T > && !CPP_OPTION (pfile, size_t_literals)) > { > - const char *message = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED > - ? N_("use of C++23 %<size_t%> integer constant") > - : N_("use of C++23 %<make_signed_t<size_t>%> integer constant"); > + const char *message > + = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED > + ? N_("use of C++23 %<size_t%> integer constant") > + : N_("use of C++23 %<make_signed_t<size_t>%> integer constant"); > cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS, > virtual_location, 0, message); > } > @@ -1118,7 +1122,7 @@ parse_defined (cpp_reader *pfile) > cpp_context *initial_context = pfile->context; > > if (pfile->state.in_directive == 3) > - cpp_error (pfile, CPP_DL_ERROR, "'defined' in #embed parameter"); > + cpp_error (pfile, CPP_DL_ERROR, "%<defined%> in %<#embed%> parameter"); > > /* Don't expand macros. */ > pfile->state.prevent_expansion++; > @@ -1135,14 +1139,14 @@ parse_defined (cpp_reader *pfile) > node = token->val.node.node; > if (paren && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN) > { > - cpp_error (pfile, CPP_DL_ERROR, "missing ')' after \"defined\""); > + cpp_error (pfile, CPP_DL_ERROR, "missing %<)%> after %<defined%>"); > node = 0; > } > } > else > { > cpp_error (pfile, CPP_DL_ERROR, > - "operator \"defined\" requires an identifier"); > + "operator %<defined%> requires an identifier"); > if (token->flags & NAMED_OP) > { > cpp_token op; > @@ -1150,7 +1154,7 @@ parse_defined (cpp_reader *pfile) > op.flags = 0; > op.type = token->type; > cpp_error (pfile, CPP_DL_ERROR, > - "(\"%s\" is an alternative token for \"%s\" in C++)", > + "(%qs is an alternative token for %qs in C++)", > cpp_token_as_text (pfile, token), > cpp_token_as_text (pfile, &op)); > } > @@ -1163,7 +1167,7 @@ parse_defined (cpp_reader *pfile) > || initial_context != &pfile->base_context) > && CPP_OPTION (pfile, warn_expansion_to_defined)) > cpp_pedwarning (pfile, CPP_W_EXPANSION_TO_DEFINED, > - "this use of \"defined\" may not be portable"); > + "this use of %<defined%> may not be portable"); > is_defined = _cpp_defined_macro_p (node); > if (!_cpp_maybe_notify_macro_use (pfile, node, token->src_loc)) > /* It wasn't a macro after all. */ > @@ -1268,7 +1272,7 @@ eval_token (cpp_reader *pfile, const cpp > result.low = 0; > if (CPP_OPTION (pfile, warn_undef) && !pfile->state.skip_eval) > cpp_warning_with_line (pfile, CPP_W_UNDEF, virtual_location, 0, > - "\"%s\" is not defined, evaluates to 0", > + "%qs is not defined, evaluates to %<0%>", > NODE_NAME (token->val.node.node)); > } > break; > @@ -1431,7 +1435,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons > case CPP_HASH: > if (!want_value) > SYNTAX_ERROR2_AT (op.loc, > - "missing binary operator before token \"%s\"", > + "missing binary operator before token %qs", > cpp_token_as_text (pfile, op.token)); > want_value = false; > top->value = eval_token (pfile, op.token, op.loc); > @@ -1456,7 +1460,8 @@ _cpp_parse_expr (cpp_reader *pfile, cons > default: > if ((int) op.op <= (int) CPP_EQ || (int) op.op >= (int) CPP_PLUS_EQ) > SYNTAX_ERROR2_AT (op.loc, > - "token \"%s\" is not valid in preprocessor expressions", > + "token %qs is not valid in preprocessor " > + "expressions", > cpp_token_as_text (pfile, op.token)); > break; > } > @@ -1466,7 +1471,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons > { > if (!want_value) > SYNTAX_ERROR2_AT (op.loc, > - "missing binary operator before token \"%s\"", > + "missing binary operator before token %qs", > cpp_token_as_text (pfile, op.token)); > } > else if (want_value) > @@ -1475,7 +1480,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons > Try to emit a specific diagnostic. */ > if (op.op == CPP_CLOSE_PAREN && top->op == CPP_OPEN_PAREN) > SYNTAX_ERROR_AT (op.loc, > - "missing expression between '(' and ')'"); > + "missing expression between %<(%> and %<)%>"); > > if (op.op == CPP_EOF && top->op == CPP_EOF) > SYNTAX_ERROR2_AT (op.loc, > @@ -1483,13 +1488,13 @@ _cpp_parse_expr (cpp_reader *pfile, cons > > if (top->op != CPP_EOF && top->op != CPP_OPEN_PAREN) > SYNTAX_ERROR2_AT (op.loc, > - "operator '%s' has no right operand", > + "operator %qs has no right operand", > cpp_token_as_text (pfile, top->token)); > else if (op.op == CPP_CLOSE_PAREN || op.op == CPP_EOF) > /* Complain about missing paren during reduction. */; > else > SYNTAX_ERROR2_AT (op.loc, > - "operator '%s' has no left operand", > + "operator %qs has no left operand", > cpp_token_as_text (pfile, op.token)); > } > > @@ -1518,7 +1523,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons > case CPP_COLON: > if (top->op != CPP_QUERY) > SYNTAX_ERROR_AT (op.loc, > - " ':' without preceding '?'"); > + " %<:%> without preceding %<?%>"); > if (!num_zerop (top[-1].value)) /* Was '?' condition true? */ > pfile->state.skip_eval++; > else > @@ -1687,7 +1692,7 @@ reduce (cpp_reader *pfile, struct op *to > { > cpp_error_with_line (pfile, CPP_DL_ERROR, > top->token->src_loc, > - 0, "missing ')' in expression"); > + 0, "missing %<)%> in expression"); > return 0; > } > top--; > @@ -1716,7 +1721,7 @@ reduce (cpp_reader *pfile, struct op *to > /* COMMA and COLON should not reduce a QUERY operator. */ > if (op == CPP_COMMA || op == CPP_COLON) > return top; > - cpp_error (pfile, CPP_DL_ERROR, "'?' without following ':'"); > + cpp_error (pfile, CPP_DL_ERROR, "%<?%> without following %<:%>"); > return 0; > > default: > @@ -1731,7 +1736,7 @@ reduce (cpp_reader *pfile, struct op *to > > if (op == CPP_CLOSE_PAREN) > { > - cpp_error (pfile, CPP_DL_ERROR, "missing '(' in expression"); > + cpp_error (pfile, CPP_DL_ERROR, "missing %<(%> in expression"); > return 0; > } > > @@ -1763,12 +1768,12 @@ check_promotion (cpp_reader *pfile, cons > { > if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision))) > cpp_error_with_line (pfile, CPP_DL_WARNING, op[-1].loc, 0, > - "the left operand of \"%s\" changes sign when promoted", > - cpp_token_as_text (pfile, op->token)); > + "the left operand of %qs changes sign when " > + "promoted", cpp_token_as_text (pfile, op->token)); > } > else if (!num_positive (op->value, CPP_OPTION (pfile, precision))) > cpp_error_with_line (pfile, CPP_DL_WARNING, op->loc, 0, > - "the right operand of \"%s\" changes sign when promoted", > + "the right operand of %qs changes sign when promoted", > cpp_token_as_text (pfile, op->token)); > } > > --- libcpp/files.cc.jj 2024-09-12 23:13:27.708941247 +0200 > +++ libcpp/files.cc 2024-09-12 23:13:32.245876199 +0200 > @@ -530,7 +530,7 @@ _cpp_find_file (cpp_reader *pfile, const > > /* Ensure we get no confusion between cached files and directories. */ > if (start_dir == NULL) > - cpp_error_at (pfile, CPP_DL_ICE, loc, "NULL directory in find_file"); > + cpp_error_at (pfile, CPP_DL_ICE, loc, "NULL directory in %<find_file%>"); > > void **hash_slot > = htab_find_slot_with_hash (pfile->file_hash, fname, > @@ -607,7 +607,7 @@ _cpp_find_file (cpp_reader *pfile, const > " but they were invalid"); > if (!cpp_get_options (pfile)->warn_invalid_pch) > cpp_error (pfile, CPP_DL_NOTE, > - "use -Winvalid-pch for more information"); > + "use %<-Winvalid-pch%> for more information"); > } > > if (kind == _cpp_FFK_PRE_INCLUDE) > @@ -1415,7 +1415,8 @@ finish_base64_embed (cpp_reader *pfile, > { > if (!params->has_embed) > cpp_error_at (pfile, CPP_DL_ERROR, params->loc, > - "'gnu::base64' parameter can be only used with \".\""); > + "%<gnu::base64%> parameter can be only used with " > + "%<\".\"%>"); > return 0; > } > tokenrun *cur_run = ¶ms->base64.base_run; > @@ -1431,7 +1432,7 @@ finish_base64_embed (cpp_reader *pfile, > { > fail: > cpp_error_at (pfile, CPP_DL_ERROR, params->loc, > - "'gnu::base64' argument not valid base64 " > + "%<gnu::base64%> argument not valid base64 " > "encoded string"); > free (buf); > return 0; > --- libcpp/init.cc.jj 2024-09-12 23:12:54.044423930 +0200 > +++ libcpp/init.cc 2024-09-12 23:13:32.243876228 +0200 > @@ -653,7 +653,7 @@ static void sanity_checks (cpp_reader *p > type precisions made by cpplib. */ > test--; > if (test < 1) > - cpp_error (pfile, CPP_DL_ICE, "cppchar_t must be an unsigned type"); > + cpp_error (pfile, CPP_DL_ICE, "%<cppchar_t%> must be an unsigned type"); > > if (CPP_OPTION (pfile, precision) > max_precision) > cpp_error (pfile, CPP_DL_ICE, > @@ -664,18 +664,19 @@ static void sanity_checks (cpp_reader *p > > if (CPP_OPTION (pfile, precision) < CPP_OPTION (pfile, int_precision)) > cpp_error (pfile, CPP_DL_ICE, > - "CPP arithmetic must be at least as precise as a target int"); > + "CPP arithmetic must be at least as precise as a target " > + "%<int%>"); > > if (CPP_OPTION (pfile, char_precision) < 8) > - cpp_error (pfile, CPP_DL_ICE, "target char is less than 8 bits wide"); > + cpp_error (pfile, CPP_DL_ICE, "target %<char%> is less than 8 bits wide"); > > if (CPP_OPTION (pfile, wchar_precision) < CPP_OPTION (pfile, char_precision)) > cpp_error (pfile, CPP_DL_ICE, > - "target wchar_t is narrower than target char"); > + "target %<wchar_t%> is narrower than target %<char%>"); > > if (CPP_OPTION (pfile, int_precision) < CPP_OPTION (pfile, char_precision)) > cpp_error (pfile, CPP_DL_ICE, > - "target int is narrower than target char"); > + "target %<int%> is narrower than target %<char%>"); > > /* This is assumed in eval_token() and could be fixed if necessary. */ > if (sizeof (cppchar_t) > sizeof (cpp_num_part)) > --- libcpp/lex.cc.jj 2024-09-12 23:12:54.045423916 +0200 > +++ libcpp/lex.cc 2024-09-12 23:13:32.243876228 +0200 > @@ -1036,7 +1036,7 @@ _cpp_process_line_notes (cpp_reader *pfi > if (CPP_OPTION (pfile, trigraphs)) > cpp_warning_with_line (pfile, CPP_W_TRIGRAPHS, > pfile->line_table->highest_line, col, > - "trigraph ??%c converted to %c", > + "trigraph %<??%c%> converted to %<%c%>", > note->type, > (int) _cpp_trigraph_map[note->type]); > else > @@ -1044,7 +1044,7 @@ _cpp_process_line_notes (cpp_reader *pfi > cpp_warning_with_line > (pfile, CPP_W_TRIGRAPHS, > pfile->line_table->highest_line, col, > - "trigraph ??%c ignored, use -trigraphs to enable", > + "trigraph %<??%c%> ignored, use %<-trigraphs%> to enable", > note->type); > } > } > @@ -1577,7 +1577,7 @@ maybe_warn_bidi_on_char (cpp_reader *pfi > rich_loc.add_range (bidi::current_ctx_loc ()); > cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc, > "UTF-8 vs UCN mismatch when closing " > - "a context by \"%s\"", bidi::to_str (kind)); > + "a context by %qs", bidi::to_str (kind)); > } > } > else if (warn_bidi & bidirectional_any > @@ -1585,11 +1585,11 @@ maybe_warn_bidi_on_char (cpp_reader *pfi > { > if (kind == bidi::kind::PDF || kind == bidi::kind::PDI) > cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc, > - "\"%s\" is closing an unopened context", > + "%qs is closing an unopened context", > bidi::to_str (kind)); > else > cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc, > - "found problematic Unicode character \"%s\"", > + "found problematic Unicode character %qs", > bidi::to_str (kind)); > } > } > @@ -1619,13 +1619,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil > cpp_error_with_line (pfile, CPP_DL_PEDWARN, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x>", > + "invalid UTF-8 character %<<%x>%>", > cur[0]); > else > cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x>", > + "invalid UTF-8 character %<<%x>%>", > cur[0]); > return cur + 1; > } > @@ -1635,13 +1635,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil > cpp_error_with_line (pfile, CPP_DL_PEDWARN, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x><%x>", > + "invalid UTF-8 character %<<%x><%x>%>", > cur[0], cur[1]); > else > cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x><%x>", > + "invalid UTF-8 character %<<%x><%x>%>", > cur[0], cur[1]); > return cur + 2; > } > @@ -1651,13 +1651,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil > cpp_error_with_line (pfile, CPP_DL_PEDWARN, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x><%x><%x>", > + "invalid UTF-8 character %<<%x><%x><%x>%>", > cur[0], cur[1], cur[2]); > else > cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x><%x><%x>", > + "invalid UTF-8 character %<<%x><%x><%x>%>", > cur[0], cur[1], cur[2]); > return cur + 3; > } > @@ -1667,13 +1667,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil > cpp_error_with_line (pfile, CPP_DL_PEDWARN, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x><%x><%x><%x>", > + "invalid UTF-8 character %<<%x><%x><%x><%x>%>", > cur[0], cur[1], cur[2], cur[3]); > else > cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "invalid UTF-8 character <%x><%x><%x><%x>", > + "invalid UTF-8 character %<<%x><%x><%x><%x>%>", > cur[0], cur[1], cur[2], cur[3]); > return cur + 4; > } > @@ -1755,7 +1755,7 @@ _cpp_skip_block_comment (cpp_reader *pfi > cpp_warning_with_line (pfile, CPP_W_COMMENTS, > pfile->line_table->highest_line, > CPP_BUF_COL (buffer), > - "\"/*\" within comment"); > + "%</*%> within comment"); > } > } > else if (c == '\n') > @@ -1933,13 +1933,13 @@ warn_about_normalization (cpp_reader *pf > sz = cpp_spell_token (pfile, token, buf, false) - buf; > if (NORMALIZE_STATE_RESULT (s) == normalized_C) > cpp_warning_at (pfile, CPP_W_NORMALIZE, &rich_loc, > - "`%.*s' is not in NFKC", (int) sz, buf); > + "%<%.*s%> is not in NFKC", (int) sz, buf); > else if (identifier && CPP_OPTION (pfile, xid_identifiers)) > cpp_pedwarning_at (pfile, CPP_W_NORMALIZE, &rich_loc, > - "`%.*s' is not in NFC", (int) sz, buf); > + "%<%.*s%> is not in NFC", (int) sz, buf); > else > cpp_warning_at (pfile, CPP_W_NORMALIZE, &rich_loc, > - "`%.*s' is not in NFC", (int) sz, buf); > + "%<%.*s%> is not in NFC", (int) sz, buf); > free (buf); > } > } > @@ -1966,7 +1966,7 @@ forms_identifier_p (cpp_reader *pfile, i > if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping) > { > CPP_OPTION (pfile, warn_dollars) = 0; > - cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number"); > + cpp_error (pfile, CPP_DL_PEDWARN, "%<$%> in identifier or number"); > } > > return true; > @@ -2028,10 +2028,10 @@ maybe_va_opt_error (cpp_reader *pfile) > { > if (CPP_OPTION (pfile, cplusplus)) > cpp_pedwarning (pfile, CPP_W_CXX20_EXTENSIONS, > - "__VA_OPT__ is not available until C++20"); > + "%<__VA_OPT__%> is not available until C++20"); > else > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > - "__VA_OPT__ is not available until C23"); > + "%<__VA_OPT__%> is not available until C23"); > } > } > else if (!pfile->state.va_args_ok) > @@ -2039,7 +2039,7 @@ maybe_va_opt_error (cpp_reader *pfile) > /* __VA_OPT__ should only appear in the replacement list of a > variadic macro. */ > cpp_error (pfile, CPP_DL_PEDWARN, > - "__VA_OPT__ can only appear in the expansion" > + "%<__VA_OPT__%> can only appear in the expansion" > " of a C++20 variadic macro"); > } > } > @@ -2056,7 +2056,7 @@ identifier_diagnostics_on_lex (cpp_reade > /* It is allowed to poison the same identifier twice. */ > if ((node->flags & NODE_POISONED) && !pfile->state.poisoned_ok) > { > - cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"", > + cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned %qs", > NODE_NAME (node)); > const auto data = (cpp_hashnode_extra *) > ht_lookup (pfile->extra_hash_table, node->ident, HT_NO_INSERT); > @@ -2071,11 +2071,11 @@ identifier_diagnostics_on_lex (cpp_reade > { > if (CPP_OPTION (pfile, cplusplus)) > cpp_error (pfile, CPP_DL_PEDWARN, > - "__VA_ARGS__ can only appear in the expansion" > + "%<__VA_ARGS__%> can only appear in the expansion" > " of a C++11 variadic macro"); > else > cpp_error (pfile, CPP_DL_PEDWARN, > - "__VA_ARGS__ can only appear in the expansion" > + "%<__VA_ARGS__%> can only appear in the expansion" > " of a C99 variadic macro"); > } > > @@ -2087,7 +2087,7 @@ identifier_diagnostics_on_lex (cpp_reade > /* For -Wc++-compat, warn about use of C++ named operators. */ > if (node->flags & NODE_WARN_OPERATOR) > cpp_warning (pfile, CPP_W_CXX_OPERATOR_NAMES, > - "identifier \"%s\" is a special operator name in C++", > + "identifier %qs is a special operator name in C++", > NODE_NAME (node)); > } > > @@ -3485,7 +3485,7 @@ cpp_maybe_module_directive (cpp_reader * > && _cpp_maybe_notify_macro_use (pfile, node, tok->src_loc) > && !cpp_fun_like_macro_p (node)) > cpp_error_with_line (pfile, CPP_DL_ERROR, tok->src_loc, 0, > - "module control-line \"%s\" cannot be" > + "module control-line %qs cannot be" > " an object-like macro", > NODE_NAME (node)); > } > --- libcpp/macro.cc.jj 2024-09-12 23:12:54.046423901 +0200 > +++ libcpp/macro.cc 2024-09-12 23:13:32.246876185 +0200 > @@ -141,7 +141,7 @@ class vaopt_state { > if (m_state > 0) > { > cpp_error_at (m_pfile, CPP_DL_ERROR, token->src_loc, > - "__VA_OPT__ may not appear in a __VA_OPT__"); > + "%<__VA_OPT__%> may not appear in a %<__VA_OPT__%>"); > return ERROR; > } > ++m_state; > @@ -154,7 +154,7 @@ class vaopt_state { > if (token->type != CPP_OPEN_PAREN) > { > cpp_error_at (m_pfile, CPP_DL_ERROR, m_location, > - "__VA_OPT__ must be followed by an " > + "%<__VA_OPT__%> must be followed by an " > "open parenthesis"); > return ERROR; > } > @@ -232,7 +232,7 @@ class vaopt_state { > { > if (m_variadic && m_state != 0) > cpp_error_at (m_pfile, CPP_DL_ERROR, m_location, > - "unterminated __VA_OPT__"); > + "unterminated %<__VA_OPT__%>"); > return m_state == 0; > } > > @@ -393,7 +393,7 @@ builtin_has_include_1 (cpp_reader *pfile > { > if (!pfile->state.in_directive) > cpp_error (pfile, CPP_DL_ERROR, > - "\"%s\" used outside of preprocessing directive", name); > + "%qs used outside of preprocessing directive", name); > > pfile->state.angled_headers = true; > const auto sav_padding = pfile->state.directive_wants_padding; > @@ -404,7 +404,7 @@ builtin_has_include_1 (cpp_reader *pfile > token = _cpp_get_token_no_padding (pfile); > else > cpp_error (pfile, CPP_DL_ERROR, > - "missing '(' before \"%s\" operand", name); > + "missing %<(%> before %qs operand", name); > pfile->state.angled_headers = false; > pfile->state.directive_wants_padding = sav_padding; > > @@ -422,7 +422,7 @@ builtin_has_include_1 (cpp_reader *pfile > fname = _cpp_bracket_include (pfile); > else > cpp_error (pfile, CPP_DL_ERROR, > - "operator \"%s\" requires a header-name", name); > + "operator %qs requires a header-name", name); > return fname; > } > > @@ -451,7 +451,7 @@ builtin_has_include (cpp_reader *pfile, > if (paren > && _cpp_get_token_no_padding (pfile)->type != CPP_CLOSE_PAREN) > cpp_error (pfile, CPP_DL_ERROR, > - "missing ')' after \"%s\" operand", NODE_NAME (op)); > + "missing %<)%> after %qs operand", NODE_NAME (op)); > > return result; > } > @@ -496,7 +496,7 @@ builtin_has_embed (cpp_reader *pfile) > if (!*fname) > { > cpp_error_with_line (pfile, CPP_DL_ERROR, params.loc, 0, > - "empty filename in '%s'", "__has_embed"); > + "empty filename in %qs", "__has_embed"); > ok = false; > } > > @@ -530,7 +530,7 @@ _cpp_warn_if_unused_macro (cpp_reader *p > (linemap_lookup (pfile->line_table, > macro->line)))) > cpp_warning_with_line (pfile, CPP_W_UNUSED_MACROS, macro->line, 0, > - "macro \"%s\" is not used", NODE_NAME (node)); > + "macro %qs is not used", NODE_NAME (node)); > } > > return 1; > @@ -569,14 +569,14 @@ _cpp_builtin_macro_text (cpp_reader *pfi > switch (node->value.builtin) > { > default: > - cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro \"%s\"", > + cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro %qs", > NODE_NAME (node)); > break; > > case BT_TIMESTAMP: > { > if (CPP_OPTION (pfile, warn_date_time)) > - cpp_warning (pfile, CPP_W_DATE_TIME, "macro \"%s\" might prevent " > + cpp_warning (pfile, CPP_W_DATE_TIME, "macro %qs might prevent " > "reproducible builds", NODE_NAME (node)); > > cpp_buffer *pbuffer = cpp_get_buffer (pfile); > @@ -684,7 +684,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi > case BT_DATE: > case BT_TIME: > if (CPP_OPTION (pfile, warn_date_time)) > - cpp_warning (pfile, CPP_W_DATE_TIME, "macro \"%s\" might prevent " > + cpp_warning (pfile, CPP_W_DATE_TIME, "macro %qs might prevent " > "reproducible builds", NODE_NAME (node)); > if (pfile->date == NULL) > { > @@ -730,7 +730,8 @@ _cpp_builtin_macro_text (cpp_reader *pfi > case BT_COUNTER: > if (CPP_OPTION (pfile, directives_only) && pfile->state.in_directive) > cpp_error (pfile, CPP_DL_ERROR, > - "__COUNTER__ expanded inside directive with -fdirectives-only"); > + "%<__COUNTER__%> expanded inside directive with " > + "%<-fdirectives-only%>"); > number = pfile->counter++; > break; > > @@ -756,7 +757,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi > if (CPP_OPTION (pfile, traditional)) > { > cpp_error (pfile, CPP_DL_ERROR, /* FIXME should be DL_SORRY */ > - "'__has_embed' not supported in traditional C"); > + "%<__has_embed%> not supported in traditional C"); > break; > } > number = builtin_has_embed (pfile); > @@ -884,7 +885,7 @@ builtin_macro (cpp_reader *pfile, cpp_ha > else > _cpp_push_token_context (pfile, NULL, token, 1); > if (pfile->buffer->cur != pfile->buffer->rlimit) > - cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro \"%s\"", > + cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro %qs", > NODE_NAME (node)); > _cpp_pop_buffer (pfile); > > @@ -1003,7 +1004,7 @@ stringify_arg (cpp_reader *pfile, const > if (backslash_count & 1) > { > cpp_error (pfile, CPP_DL_WARNING, > - "invalid string literal, ignoring final '\\'"); > + "invalid string literal, ignoring final %<\\%>"); > dest--; > } > > @@ -1200,26 +1201,26 @@ _cpp_arguments_ok (cpp_reader *pfile, cp > if (CPP_OPTION (pfile, cplusplus)) > cpp_pedwarning (pfile, CPP_W_CXX20_EXTENSIONS, > "ISO C++11 requires at least one argument " > - "for the \"...\" in a variadic macro"); > + "for the %<...%> in a variadic macro"); > else > cpp_pedwarning (pfile, CPP_W_PEDANTIC, > "ISO C99 requires at least one argument " > - "for the \"...\" in a variadic macro"); > + "for the %<...%> in a variadic macro"); > } > return true; > } > > cpp_error (pfile, CPP_DL_ERROR, > - "macro \"%s\" requires %u arguments, but only %u given", > + "macro %qs requires %u arguments, but only %u given", > NODE_NAME (node), macro->paramc, argc); > } > else > cpp_error (pfile, CPP_DL_ERROR, > - "macro \"%s\" passed %u arguments, but takes just %u", > + "macro %qs passed %u arguments, but takes just %u", > NODE_NAME (node), argc, macro->paramc); > > if (macro->line > RESERVED_LOCATION_COUNT) > - cpp_error_at (pfile, CPP_DL_NOTE, macro->line, "macro \"%s\" defined here", > + cpp_error_at (pfile, CPP_DL_NOTE, macro->line, "macro %qs defined here", > NODE_NAME (node)); > > return false; > @@ -1413,7 +1414,7 @@ collect_args (cpp_reader *pfile, const c > if (token == &pfile->endarg) > _cpp_backup_tokens (pfile, 1); > cpp_error (pfile, CPP_DL_ERROR, > - "unterminated argument list invoking macro \"%s\"", > + "unterminated argument list invoking macro %qs", > NODE_NAME (node)); > } > else > @@ -1559,8 +1560,8 @@ enter_macro_context (cpp_reader *pfile, > { > if (CPP_WTRADITIONAL (pfile) && ! node->value.macro->syshdr) > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "function-like macro \"%s\" must be used with arguments in traditional C", > - NODE_NAME (node)); > + "function-like macro %qs must be used with " > + "arguments in traditional C", NODE_NAME (node)); > > if (pragma_buff) > _cpp_release_buff (pfile, pragma_buff); > @@ -3462,7 +3463,7 @@ _cpp_save_parameter (cpp_reader *pfile, > /* Constraint 6.10.3.6 - duplicate parameter names. */ > if (node->type == NT_MACRO_ARG) > { > - cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter \"%s\"", > + cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter %qs", > NODE_NAME (node)); > return false; > } > @@ -3544,11 +3545,11 @@ parse_params (cpp_reader *pfile, unsigne > { > const char *const msgs[5] = > { > - N_("expected parameter name, found \"%s\""), > - N_("expected ',' or ')', found \"%s\""), > + N_("expected parameter name, found %qs"), > + N_("expected %<,%> or %<)%>, found %qs"), > N_("expected parameter name before end of line"), > - N_("expected ')' before end of line"), > - N_("expected ')' after \"...\"") > + N_("expected %<)%> before end of line"), > + N_("expected %<)%> after %<...%>") > }; > unsigned ix = prev_ident; > const unsigned char *as_text = NULL; > @@ -3663,7 +3664,7 @@ create_iso_definition (cpp_reader *pfile > { > bool following_paste_op = false; > const char *paste_op_error_msg = > - N_("'##' cannot appear at either end of a macro expansion"); > + N_("%<##%> cannot appear at either end of a macro expansion"); > unsigned int num_extra_tokens = 0; > unsigned nparms = 0; > cpp_hashnode **params = NULL; > @@ -3779,7 +3780,7 @@ create_iso_definition (cpp_reader *pfile > else if (CPP_OPTION (pfile, lang) != CLK_ASM) > { > cpp_error (pfile, CPP_DL_ERROR, > - "'#' is not followed by a macro parameter"); > + "%<#%> is not followed by a macro parameter"); > goto out; > } > } > @@ -3940,15 +3941,14 @@ _cpp_create_definition (cpp_reader *pfil > = (cpp_builtin_macro_p (node) && !(node->flags & NODE_WARN)) > ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE; > > - bool warned = > - cpp_pedwarning_with_line (pfile, reason, > - macro->line, 0, > - "\"%s\" redefined", NODE_NAME (node)); > + bool warned > + = cpp_pedwarning_with_line (pfile, reason, macro->line, 0, > + "%qs redefined", NODE_NAME (node)); > > if (warned && cpp_user_macro_p (node)) > - cpp_error_with_line (pfile, CPP_DL_NOTE, > - node->value.macro->line, 0, > - "this is the location of the previous definition"); > + cpp_error_with_line (pfile, CPP_DL_NOTE, node->value.macro->line, > + 0, "this is the location of the previous " > + "definition"); > } > _cpp_free_definition (node); > } > @@ -4085,8 +4085,8 @@ check_trad_stringification (cpp_reader * > && !memcmp (p, NODE_NAME (node), len)) > { > cpp_warning (pfile, CPP_W_TRADITIONAL, > - "macro argument \"%s\" would be stringified in traditional C", > - NODE_NAME (node)); > + "macro argument %qs would be stringified in " > + "traditional C", NODE_NAME (node)); > break; > } > } > --- libcpp/pch.cc.jj 2024-02-01 20:31:40.597630432 +0100 > +++ libcpp/pch.cc 2024-09-12 23:13:32.241876256 +0200 > @@ -613,7 +613,7 @@ cpp_valid_state (cpp_reader *r, const ch > { > if (CPP_OPTION (r, warn_invalid_pch)) > cpp_warning_syshdr (r, CPP_W_INVALID_PCH, > - "%s: not used because `%.*s' is poisoned", > + "%s: not used because %<%.*s%> is poisoned", > name, m.name_length, namebuf); > goto fail; > } > @@ -635,7 +635,7 @@ cpp_valid_state (cpp_reader *r, const ch > > if (CPP_OPTION (r, warn_invalid_pch)) > cpp_warning_syshdr (r, CPP_W_INVALID_PCH, > - "%s: not used because `%.*s' not defined", > + "%s: not used because %<%.*s%> not defined", > name, m.name_length, namebuf); > goto fail; > } > @@ -647,10 +647,12 @@ cpp_valid_state (cpp_reader *r, const ch > { > if (CPP_OPTION (r, warn_invalid_pch)) > cpp_warning_syshdr (r, CPP_W_INVALID_PCH, > - "%s: not used because `%.*s' defined as `%s' not `%.*s'", > - name, m.name_length, namebuf, newdefn + m.name_length, > - m.definition_length - m.name_length, > - namebuf + m.name_length); > + "%s: not used because %<%.*s%> defined as " > + "%<%s%> not %<%.*s%>", > + name, m.name_length, namebuf, > + newdefn + m.name_length, > + m.definition_length - m.name_length, > + namebuf + m.name_length); > goto fail; > } > } > @@ -688,7 +690,7 @@ cpp_valid_state (cpp_reader *r, const ch > { > if (CPP_OPTION (r, warn_invalid_pch)) > cpp_warning_syshdr (r, CPP_W_INVALID_PCH, > - "%s: not used because `%s' is defined", > + "%s: not used because %qs is defined", > name, first); > goto fail; > } > @@ -708,7 +710,7 @@ cpp_valid_state (cpp_reader *r, const ch > { > if (CPP_OPTION (r, warn_invalid_pch)) > cpp_warning_syshdr (r, CPP_W_INVALID_PCH, > - "%s: not used because `__COUNTER__' is invalid", > + "%s: not used because %<__COUNTER__%> is invalid", > name); > goto fail; > } > --- libcpp/traditional.cc.jj 2024-01-03 22:33:38.352691603 +0100 > +++ libcpp/traditional.cc 2024-09-12 23:13:32.244876213 +0200 > @@ -819,7 +819,7 @@ _cpp_scan_out_logical_line (cpp_reader * > > if (lex_state == ls_fun_close) > cpp_error_with_line (pfile, CPP_DL_ERROR, fmacro.line, 0, > - "unterminated argument list invoking macro \"%s\"", > + "unterminated argument list invoking macro %qs", > NODE_NAME (fmacro.node)); > return result; > } > @@ -888,7 +888,7 @@ recursive_macro (cpp_reader *pfile, cpp_ > > if (recursing) > cpp_error (pfile, CPP_DL_ERROR, > - "detected recursion whilst expanding macro \"%s\"", > + "detected recursion whilst expanding macro %qs", > NODE_NAME (node)); > > return recursing; > --- gcc/Makefile.in.jj 2024-09-12 18:15:16.646678098 +0200 > +++ gcc/Makefile.in 2024-09-12 19:54:32.336312293 +0200 > @@ -2957,12 +2957,12 @@ generated_files = config.h tm.h $(TM_P_H > $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \ > options.h target-hooks-def.h insn-opinit.h \ > common/common-target-hooks-def.h pass-instances.def \ > - $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \ > - gimple-match-auto.h generic-match-auto.h \ > c-family/c-target-hooks-def.h d/d-target-hooks-def.h \ > $(TM_RUST_H) rust/rust-target-hooks-def.h \ > case-cfn-macros.h \ > cfn-operators.pd omp-device-properties.h > +generated_match_files = gimple-match-auto.h generic-match-auto.h \ > + $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) > > # > # How to compile object files to run on the build machine. > @@ -3146,7 +3146,8 @@ build/genmatch$(build_exeext): BUILD_LIB > endif > > build/genmatch$(build_exeext) : $(BUILD_CPPLIB) \ > - $(BUILD_ERRORS) build/vec.o build/hash-table.o build/sort.o > + build/vec.o build/hash-table.o build/sort.o libcommon.a \ > + $(LIBBACKTRACE) > > # These programs are not linked with the MD reader. > build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \ > @@ -4575,6 +4576,8 @@ po/gcc.pot: force > # objects from $(OBJS) as early as possible, build all their > # prerequisites strictly before all objects. > $(ALL_HOST_OBJS) : | $(generated_files) > +# build/genmatch depends on libcommon.a, so avoid circular dependencies. > +$(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) : | $(generated_match_files) > > # Include the auto-generated dependencies for all host objects. > DEPFILES = \ > --- gcc/genmatch.cc.jj 2024-09-12 18:15:16.685677568 +0200 > +++ gcc/genmatch.cc 2024-09-12 19:14:55.970740747 +0200 > @@ -31,18 +31,21 @@ along with GCC; see the file COPYING3. > #include "hash-set.h" > #include "is-a.h" > #include "ordered-hash-map.h" > +#include "pretty-print.h" > +#include "input.h" > > - > -/* Stubs for GGC referenced through instantiations triggered by hash-map. */ > -void *ggc_internal_cleared_alloc (size_t, void (*)(void *), > - size_t, size_t MEM_STAT_DECL) > -{ > - return NULL; > -} > -void ggc_free (void *) > +void > +fatal (const char *format, ...) > { > -} > + va_list ap; > > + va_start (ap, format); > + fprintf (stderr, "%s: ", progname); > + vfprintf (stderr, format, ap); > + va_end (ap); > + fputc ('\n', stderr); > + exit (FATAL_EXIT_CODE); > +} > > /* Global state. */ > > @@ -52,29 +55,9 @@ unsigned verbose; > > /* libccp helpers. */ > > -static class line_maps *line_table; > - > -/* The rich_location class within libcpp requires a way to expand > - location_t instances, and relies on the client code > - providing a symbol named > - linemap_client_expand_location_to_spelling_point > - to do this. > - > - This is the implementation for genmatch. */ > - > -expanded_location > -linemap_client_expand_location_to_spelling_point (const line_maps *set, > - location_t loc, > - enum location_aspect) > -{ > - const struct line_map_ordinary *map; > - loc = linemap_resolve_location (set, loc, LRK_SPELLING_LOCATION, &map); > - return linemap_expand_location (set, map, loc); > -} > - > static bool > #if GCC_VERSION >= 4001 > -__attribute__((format (printf, 5, 0))) > +__attribute__((format (gcc_diag, 5, 0))) > #endif > diagnostic_cb (cpp_reader *, enum cpp_diagnostic_level errtype, > enum cpp_warning_reason, rich_location *richloc, > @@ -86,7 +69,11 @@ diagnostic_cb (cpp_reader *, enum cpp_di > expanded_location loc = linemap_expand_location (line_table, map, location); > fprintf (stderr, "%s:%d:%d %s: ", loc.file, loc.line, loc.column, > (errtype == CPP_DL_WARNING) ? "warning" : "error"); > - vfprintf (stderr, msg, *ap); > + pretty_printer pp; > + pp.set_output_stream (stderr); > + text_info text (msg, ap, errno); > + pp_format_verbatim (&pp, &text); > + pp_flush (&pp); > fprintf (stderr, "\n"); > FILE *f = fopen (loc.file, "r"); > if (f) > @@ -119,7 +106,7 @@ notfound: > > static void > #if GCC_VERSION >= 4001 > -__attribute__((format (printf, 2, 3))) > +__attribute__((format (gcc_diag, 2, 3))) > #endif > fatal_at (const cpp_token *tk, const char *msg, ...) > { > @@ -132,7 +119,7 @@ fatal_at (const cpp_token *tk, const cha > > static void > #if GCC_VERSION >= 4001 > -__attribute__((format (printf, 2, 3))) > +__attribute__((format (gcc_diag, 2, 3))) > #endif > fatal_at (location_t loc, const char *msg, ...) > { > @@ -145,7 +132,7 @@ fatal_at (location_t loc, const char *ms > > static void > #if GCC_VERSION >= 4001 > -__attribute__((format (printf, 2, 3))) > +__attribute__((format (gcc_diag, 2, 3))) > #endif > warning_at (const cpp_token *tk, const char *msg, ...) > { > @@ -158,7 +145,7 @@ warning_at (const cpp_token *tk, const c > > static void > #if GCC_VERSION >= 4001 > -__attribute__((format (printf, 2, 3))) > +__attribute__((format (gcc_diag, 2, 3))) > #endif > warning_at (location_t loc, const char *msg, ...) > { > @@ -267,8 +254,8 @@ output_line_directive (FILE *f, location > bool dumpfile = false, bool fnargs = false, > bool indirect_line_numbers = false) > { > - typedef pair_hash<nofree_string_hash, int_hash<int, -1>> location_hash; > - static hash_map<location_hash, int> loc_id_map; > + typedef pair_hash<nofree_string_hash, int_hash<int, -1>> loc_hash; > + static hash_map<loc_hash, int> loc_id_map; > const line_map_ordinary *map; > linemap_resolve_location (line_table, location, LRK_SPELLING_LOCATION, &map); > expanded_location loc = linemap_expand_location (line_table, map, location); > @@ -4558,7 +4545,7 @@ parser::eat_ident (const char *s) > const cpp_token *token = peek (); > const char *t = get_ident (); > if (strcmp (s, t) != 0) > - fatal_at (token, "expected '%s' got '%s'\n", s, t); > + fatal_at (token, "expected %qs got %qs", s, t); > return token; > } > > @@ -4626,7 +4613,7 @@ parser::parse_operation (unsigned char & > alt_id = xstrdup (id); > alt_id[strlen (id) - 1] = '\0'; > if (opt_grp == 1) > - fatal_at (id_tok, "use '%s?' here", alt_id); > + fatal_at (id_tok, "use %<%s?%> here", alt_id); > } > else > opt_grp = 1; > @@ -4711,10 +4698,10 @@ parser::parse_expr () > if (token->type == CPP_XOR && !(token->flags & PREV_WHITE)) > { > if (!parsing_match_operand) > - fatal_at (token, "modifier '^' is only valid in a match expression"); > + fatal_at (token, "modifier %<^%> is only valid in a match expression"); > > if (!(*e->operation == COND_EXPR)) > - fatal_at (token, "modifier '^' can only act on operation COND_EXPR"); > + fatal_at (token, "modifier %<^%> can only act on operation %<COND_EXPR%>"); > > eat_token (CPP_XOR); > e->match_phi = true; > @@ -5429,7 +5416,7 @@ parser::parse_pattern () > { > if (active_ifs.length () > 0 > || active_fors.length () > 0) > - fatal_at (token, "define_predicates inside if or for is not supported"); > + fatal_at (token, "%<define_predicates%> inside if or for is not supported"); > parse_predicates (token->src_loc); > } > else if (strcmp (id, "define_operator_list") == 0) > @@ -5439,10 +5426,11 @@ parser::parse_pattern () > fatal_at (token, "operator-list inside if or for is not supported"); > parse_operator_list (token->src_loc); > } > + else if (active_ifs.length () == 0 && active_fors.length () == 0) > + fatal_at (token, "expected %<define_predicates%>, %<simplify%>, " > + "%<match%>, %<for%> or %<if%>"); > else > - fatal_at (token, "expected %s'simplify', 'match', 'for' or 'if'", > - active_ifs.length () == 0 && active_fors.length () == 0 > - ? "'define_predicates', " : ""); > + fatal_at (token, "expected %<simplify%>, %<match%>, %<for%> or %<if%>"); > > eat_token (CPP_CLOSE_PAREN); > } > @@ -5484,12 +5472,13 @@ parser::finish_match_operand (operand *o > if (cpts[i][j]->value_match) > { > if (value_match) > - fatal_at (cpts[i][j]->location, "duplicate @@"); > + fatal_at (cpts[i][j]->location, "duplicate %s", "@@"); > value_match = cpts[i][j]; > } > } > if (cpts[i].length () == 1 && value_match) > - fatal_at (value_match->location, "@@ without a matching capture"); > + fatal_at (value_match->location, > + "%s without a matching capture", "@@"); > if (value_match) > { > /* Duplicate prevailing capture with the existing ID, create > --- gcc/c-family/c-lex.cc.jj 2024-08-31 15:57:38.668024919 +0200 > +++ gcc/c-family/c-lex.cc 2024-09-12 19:40:38.012724079 +0200 > @@ -342,7 +342,7 @@ c_common_has_attribute (cpp_reader *pfil > if (token->type != CPP_OPEN_PAREN) > { > cpp_error (pfile, CPP_DL_ERROR, > - "missing '(' after \"__has_attribute\""); > + "missing %<(%> after %<__has_attribute%>"); > return 0; > } > token = get_token_no_padding (pfile); > @@ -464,13 +464,13 @@ c_common_has_attribute (cpp_reader *pfil > else > { > cpp_error (pfile, CPP_DL_ERROR, > - "macro \"__has_attribute\" requires an identifier"); > + "macro %<__has_attribute%> requires an identifier"); > return 0; > } > > if (get_token_no_padding (pfile)->type != CPP_CLOSE_PAREN) > cpp_error (pfile, CPP_DL_ERROR, > - "missing ')' after \"__has_attribute\""); > + "missing %<)%> after %<__has_attribute%>"); > > return result; > } > @@ -484,7 +484,7 @@ c_common_lex_availability_macro (cpp_rea > if (token->type != CPP_OPEN_PAREN) > { > cpp_error (pfile, CPP_DL_ERROR, > - "missing '(' after \"__has_%s\"", builtin); > + "missing %<(%> after %<__has_%s%>", builtin); > return 0; > } > > @@ -497,14 +497,14 @@ c_common_lex_availability_macro (cpp_rea > if (token->type != CPP_CLOSE_PAREN) > { > cpp_error (pfile, CPP_DL_ERROR, > - "expected ')' after \"%s\"", name); > + "expected %<)%> after %<%s%>", name); > name = ""; > } > } > else > { > cpp_error (pfile, CPP_DL_ERROR, > - "macro \"__has_%s\" requires an identifier", builtin); > + "macro %<__has_%s%> requires an identifier", builtin); > if (token->type == CPP_CLOSE_PAREN) > return 0; > } > --- gcc/testsuite/c-c++-common/cpp/counter-2.c.jj 2020-05-11 23:00:07.547503865 +0200 > +++ gcc/testsuite/c-c++-common/cpp/counter-2.c 2024-09-13 09:20:12.497617451 +0200 > @@ -10,5 +10,5 @@ > #ifdef __COUNTER__ /* Macro not expanded. */ > #endif > > -#if __COUNTER__ == 0 /* { dg-error "__COUNTER__ expanded inside directive with -fdirectives-only" } */ > +#if __COUNTER__ == 0 /* { dg-error "'__COUNTER__' expanded inside directive with '-fdirectives-only'" } */ > #endif > --- gcc/testsuite/c-c++-common/cpp/embed-3.c.jj 2024-09-12 23:12:54.031424116 +0200 > +++ gcc/testsuite/c-c++-common/cpp/embed-3.c 2024-09-13 10:13:14.831620615 +0200 > @@ -53,20 +53,20 @@ > /* { dg-error "unbalanced '\\\)'" "" { target *-*-* } .-1 } */ > /* { dg-error "unbalanced '\\\['" "" { target *-*-* } .-2 } */ > /* { dg-error "unbalanced '\\\('" "" { target *-*-* } .-3 } */ > -#embed limit(1) /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ > +#embed limit(1) /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ > #define FOO 1 > -#embed __FILE__ limit(0 + defined(FOO)) /* { dg-error "'defined' in #embed parameter" } */ > -#embed /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ > +#embed __FILE__ limit(0 + defined(FOO)) /* { dg-error "'defined' in '#embed' parameter" } */ > +#embed /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ > #embed " > /* { dg-warning "missing terminating \\\" character" "" { target *-*-* } .-1 } */ > - /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" "" { target *-*-* } .-2 } */ > + /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" "" { target *-*-* } .-2 } */ > #embed < > /* { dg-error "empty filename in #embed" "" { target *-*-* } .-1 } */ > -/* { dg-error "missing terminating > character" "" { target *-*-* } .-2 } */ > -#embed > /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ > +/* { dg-error "missing terminating '>' character" "" { target *-*-* } .-2 } */ > +#embed > /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ > #embed "" /* { dg-error "empty filename in #embed" } */ > #embed <> /* { dg-error "empty filename in #embed" } */ > -#embed embed-4.c /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ > +#embed embed-4.c /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ > #embed __FILE__ foo: /* { dg-error "expected parameter name" } */ > /* { dg-error "unknown embed parameter 'foo'" "" { target *-*-* } .-1 } */ > #embed __FILE__ bar:: /* { dg-error "expected parameter name" } */ > --- gcc/testsuite/c-c++-common/cpp/embed-4.c.jj 2024-09-12 23:12:54.031424116 +0200 > +++ gcc/testsuite/c-c++-common/cpp/embed-4.c 2024-09-13 10:49:02.502992675 +0200 > @@ -2,7 +2,7 @@ > /* { dg-options "" } */ > > #if 1 + __has_embed (__FILE__ , limit(1)) /* { dg-error "expected parameter name" } */ > -/* { dg-error "missing binary operator before token \\\"limit\\\"" "" { target *-*-* } .-1 } */ > +/* { dg-error "missing binary operator before token 'limit'" "" { target *-*-* } .-1 } */ > #endif > #if 1 + __has_embed (__FILE__ limit(1) /* { dg-error "expected '\\\)'" } */ > #endif > @@ -81,35 +81,35 @@ > /* { dg-error "expected '\\\)'" "" { target *-*-* } .-3 } */ > #endif > #define FOO 1 > -#if 1 + __has_embed (limit(1)) /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ > -/* { dg-error "missing binary operator before token \\\"1\\\"" "" { target *-*-* } .-1 } */ > +#if 1 + __has_embed (limit(1)) /* { dg-error "operator '__has_embed' requires a header-name" } */ > +/* { dg-error "missing binary operator before token '1'" "" { target *-*-* } .-1 } */ > #endif > -#if 1 + __has_embed (__FILE__ limit(0 + defined(FOO))) /* { dg-error "'defined' in #embed parameter" } */ > +#if 1 + __has_embed (__FILE__ limit(0 + defined(FOO))) /* { dg-error "'defined' in '#embed' parameter" } */ > #endif > -int a = __has_embed (__FILE__); /* { dg-error "\\\"__has_embed\\\" used outside of preprocessing directive" } */ > -#if __has_embed /* { dg-error "missing '\\\(' before \\\"__has_embed\\\" operand" } */ > -/* { dg-error "operator \\\"__has_embed\\\" requires a header-name" "" { target *-*-* } .-1 } */ > +int a = __has_embed (__FILE__); /* { dg-error "'__has_embed' used outside of preprocessing directive" } */ > +#if __has_embed /* { dg-error "missing '\\\(' before '__has_embed' operand" } */ > +/* { dg-error "operator '__has_embed' requires a header-name" "" { target *-*-* } .-1 } */ > #endif > -#if __has_embed( /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ > +#if __has_embed( /* { dg-error "operator '__has_embed' requires a header-name" } */ > #endif > -#if __has_embed() /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ > +#if __has_embed() /* { dg-error "operator '__has_embed' requires a header-name" } */ > #endif > #if __has_embed(") > /* { dg-warning "missing terminating \\\" character" "" { target *-*-* } .-1 } */ > -/* { dg-error "operator \\\"__has_embed\\\" requires a header-name" "" { target *-*-* } .-2 } */ > +/* { dg-error "operator '__has_embed' requires a header-name" "" { target *-*-* } .-2 } */ > #endif > #if __has_embed(<) > -/* { dg-error "missing terminating > character" "" { target *-*-* } .-1 } */ > +/* { dg-error "missing terminating '>' character" "" { target *-*-* } .-1 } */ > /* { dg-error "expected '\\\)'" "" { target *-*-* } .-2 } */ > #endif > -#if __has_embed(>) /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ > +#if __has_embed(>) /* { dg-error "operator '__has_embed' requires a header-name" } */ > #endif > #if __has_embed("") /* { dg-error "empty filename in '__has_embed'" } */ > #endif > #if __has_embed(<>) /* { dg-error "empty filename in '__has_embed'" } */ > #endif > -#if __has_embed(embed-4.c) /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ > -/* { dg-error "missing binary operator before token \\\"4.c\\\"" "" { target *-*-* } .-1 } */ > +#if __has_embed(embed-4.c) /* { dg-error "operator '__has_embed' requires a header-name" } */ > +/* { dg-error "missing binary operator before token '4.c'" "" { target *-*-* } .-1 } */ > #endif > #if __has_embed(__FILE__ foo:) /* { dg-error "expected parameter name" } */ > /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ > @@ -120,10 +120,10 @@ int a = __has_embed (__FILE__); /* { dg- > /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ > #endif > #if __has_embed(__FILE__ foo:bar) /* { dg-error "expected parameter name" } */ > -/* { dg-error "missing binary operator before token \\\"bar\\\"" "" { target *-*-* } .-1 } */ > +/* { dg-error "missing binary operator before token 'bar'" "" { target *-*-* } .-1 } */ > #endif > #if __has_embed(__FILE__ foo::bar::baz) /* { dg-error "expected parameter name" } */ > -/* { dg-error "missing binary operator before token \\\"baz\\\"" "" { target *-*-* } .-1 } */ > +/* { dg-error "missing binary operator before token 'baz'" "" { target *-*-* } .-1 } */ > #endif > #if __has_embed(__FILE__ foo : : bar) /* { dg-error "expected parameter name" } */ > /* { dg-error "':' without preceding '\\\?'" "" { target *-*-* } .-1 } */ > @@ -132,7 +132,7 @@ int a = __has_embed (__FILE__); /* { dg- > /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ > #endif > #if __has_embed(__FILE__ 42::foo) /* { dg-error "expected parameter name" } */ > -/* { dg-error "token \\\"::\\\" is not valid in preprocessor expressions" "" { target *-*-* } .-1 } */ > +/* { dg-error "token '::' is not valid in preprocessor expressions" "" { target *-*-* } .-1 } */ > #endif > #if __has_embed(__FILE__ foo::42) /* { dg-error "expected parameter name" } */ > /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ > --- gcc/testsuite/c-c++-common/cpp/embed-16.c.jj 2024-09-12 23:12:54.031424116 +0200 > +++ gcc/testsuite/c-c++-common/cpp/embed-16.c 2024-09-13 10:10:29.141909066 +0200 > @@ -6,7 +6,7 @@ > #embed __FILE__ gnu::offset (1 / 0) /* { dg-error "division by zero in #embed" } */ > #embed __FILE__ __gnu__::__offset__ (+ + +) /* { dg-error "operator '\\\+' has no right operand" } */ > #define FOO 1 > -#embed __FILE__ gnu::offset(0 + defined(FOO)) /* { dg-error "'defined' in #embed parameter" } */ > +#embed __FILE__ gnu::offset(0 + defined(FOO)) /* { dg-error "'defined' in '#embed' parameter" } */ > #embed __FILE__ gnu::offset (-1) /* { dg-error "negative embed parameter operand" } */ > #embed __FILE__ gnu::offset (-42) /* { dg-error "negative embed parameter operand" } */ > #embed __FILE__ gnu::offset (-9223372036854775807 - 1) /* { dg-error "negative embed parameter operand" } */ > @@ -19,7 +19,7 @@ > #endif > #if 1 + __has_embed (__FILE__ gnu::offset(+ + +)) /* { dg-error "operator '\\\+' has no right operand" } */ > #endif > -#if 1 + __has_embed (__FILE__ gnu::offset(0 + defined(FOO))) /* { dg-error "'defined' in #embed parameter" } */ > +#if 1 + __has_embed (__FILE__ gnu::offset(0 + defined(FOO))) /* { dg-error "'defined' in '#embed' parameter" } */ > #endif > #if 1 + __has_embed (__FILE__ gnu::offset (-1)) /* { dg-error "negative embed parameter operand" } */ > #endif > --- gcc/testsuite/c-c++-common/cpp/embed-18.c.jj 2024-09-12 23:12:54.031424116 +0200 > +++ gcc/testsuite/c-c++-common/cpp/embed-18.c 2024-09-13 10:11:07.860374297 +0200 > @@ -23,9 +23,9 @@ > #embed "." gnu::base64("\u{53}\u{41}\u{3d}\u{00003d}") /* { dg-error "'gnu::base64' argument not valid base64 encoded string" } */ > #embed "." gnu::base64("\U00000053\U00000041\U0000003d\U0000003d") /* { dg-error "'gnu::base64' argument not valid base64 encoded string" } */ > #embed "." gnu::base64("\N{LATIN CAPITAL LETTER S}\N{LATIN CAPITAL LETTER A}\N{LATIN CAPITAL LETTER A}\N{LATIN CAPITAL LETTER A}") /* { dg-error "'gnu::base64' argument not valid base64 encoded string" } */ > -#embed "embed-18.c" gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with \\\".\\\"" } */ > -#embed <embed-18.c> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with \\\".\\\"" } */ > -#embed <.> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with \\\".\\\"" } */ > +#embed "embed-18.c" gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with '\\\".\\\"'" } */ > +#embed <embed-18.c> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with '\\\".\\\"'" } */ > +#embed <.> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with '\\\".\\\"'" } */ > #embed "." gnu::base64("SA==") limit(3) /* { dg-error "'gnu::base64' parameter conflicts with 'limit' or 'gnu::offset' parameters" } */ > #embed "." gnu::base64("SA==") gnu::offset(1) /* { dg-error "'gnu::base64' parameter conflicts with 'limit' or 'gnu::offset' parameters" } */ > #if 1 + __has_embed ("." gnu::base64("") __gnu__::__base64__("")) /* { dg-error "duplicate embed parameter 'gnu::base64'" } */ > --- gcc/testsuite/c-c++-common/cpp/eof-2.c.jj 2020-10-20 22:47:02.236213355 +0200 > +++ gcc/testsuite/c-c++-common/cpp/eof-2.c 2024-09-13 09:57:17.569855397 +0200 > @@ -5,4 +5,4 @@ > #define f(x) x > > #include "eof-2.h" > - /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro "f"\n} } */ > + /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro 'f'\n} } */ > --- gcc/testsuite/c-c++-common/cpp/eof-3.c.jj 2020-10-20 22:47:02.236213355 +0200 > +++ gcc/testsuite/c-c++-common/cpp/eof-3.c 2024-09-13 09:57:23.151778204 +0200 > @@ -3,6 +3,6 @@ > /* { dg-do preprocess } */ > /* { dg-additional-options "-include $srcdir/c-c++-common/cpp/eof-2.h" } */ > > - /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro "f"\n} } */ > + /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro 'f'\n} } */ > > token ) > --- gcc/testsuite/c-c++-common/cpp/fmax-include-depth.c.jj 2024-07-31 21:47:22.675998687 +0200 > +++ gcc/testsuite/c-c++-common/cpp/fmax-include-depth.c 2024-09-13 09:21:07.874848936 +0200 > @@ -1,4 +1,4 @@ > /* { dg-do preprocess } */ > /* { dg-options "-fmax-include-depth=1" } */ > > -#include "fmax-include-depth-1b.h" /* { dg-error ".include nested depth 1 exceeds maximum of 1 .use -fmax-include-depth=DEPTH to increase the maximum." } */ > +#include "fmax-include-depth-1b.h" /* { dg-error "'#include' nested depth 1 exceeds maximum of 1 \\\(use '-fmax-include-depth=DEPTH' to increase the maximum\\\)" } */ > --- gcc/testsuite/c-c++-common/cpp/has-builtin.c.jj 2020-01-14 20:02:46.649611841 +0100 > +++ gcc/testsuite/c-c++-common/cpp/has-builtin.c 2024-09-13 09:22:09.596992352 +0200 > @@ -6,44 +6,44 @@ > # error "__has_builtin is not defined" > #endif > > -#if __has_builtin // { dg-error "missing '\\\(' after \"__has_builtin\"" } > +#if __has_builtin // { dg-error "missing '\\\(' after '__has_builtin'" } > #endif > > -#if __has_builtin ( // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin ( // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin () // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin () // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin (1) // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin (1) // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin (1, 2) // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin (1, 2) // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin (1 + 2) // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin (1 + 2) // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin (x, y) // { dg-error "expected '\\\)' after \"x\"" } */ > +#if __has_builtin (x, y) // { dg-error "expected '\\\)' after 'x'" } */ > #endif > > -#if __has_builtin (x + 1) // { dg-error "expected '\\\)' after \"x\"" } */ > +#if __has_builtin (x + 1) // { dg-error "expected '\\\)' after 'x'" } */ > #endif > > -#if __has_builtin (p->i) // { dg-error "expected '\\\)' after \"p\"" } */ > +#if __has_builtin (p->i) // { dg-error "expected '\\\)' after 'p'" } */ > #endif > > -#if __has_builtin ((x)) // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin ((x)) // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin ((y) // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin ((y) // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > -#if __has_builtin ((((z) // { dg-error "macro \"__has_builtin\" requires an identifier" } > +#if __has_builtin ((((z) // { dg-error "macro '__has_builtin' requires an identifier" } > #endif > > #if __has_builtin (x))) // { dg-error "missing '\\\('" }" > #endif > > -#if __has_builtin (f ()) // { dg-error "expected '\\\)' after \"f\"" }" > +#if __has_builtin (f ()) // { dg-error "expected '\\\)' after 'f'" }" > #endif > --- gcc/testsuite/c-c++-common/cpp/line-2.c.jj 2023-06-26 09:27:04.358366387 +0200 > +++ gcc/testsuite/c-c++-common/cpp/line-2.c 2024-09-13 09:58:32.071825072 +0200 > @@ -8,4 +8,4 @@ int line4; > > // { dg-regexp {In file included from <command-line>:\n[^\n]*/line-2.h:4:2: error: #error wrong\n} } > > -// { dg-regexp {[^\n]*/line-2.c:3:11: error: macro "bill" passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro "bill" defined here\n} } > +// { dg-regexp {[^\n]*/line-2.c:3:11: error: macro 'bill' passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro 'bill' defined here\n} } > --- gcc/testsuite/c-c++-common/cpp/line-3.c.jj 2023-06-26 09:27:04.358366387 +0200 > +++ gcc/testsuite/c-c++-common/cpp/line-3.c 2024-09-13 09:59:07.959328765 +0200 > @@ -15,6 +15,6 @@ int line4; > > // { dg-regexp {In file included from <command-line>:\n[^\n]*/line-2.h:4:2: error: #error wrong\n} } > > -// { dg-regexp {[^\n]*/line-3.c:3:11: error: macro "bill" passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro "bill" defined here\n} } > +// { dg-regexp {[^\n]*/line-3.c:3:11: error: macro 'bill' passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro 'bill' defined here\n} } > > // { dg-options "-fpreprocessed -fdirectives-only" } > --- gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c.jj 2023-06-26 09:27:04.358366387 +0200 > +++ gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c 2024-09-13 09:59:59.641614027 +0200 > @@ -4,7 +4,7 @@ > void test_1 () > { > MACRO_1(42); /* { dg-line "use_of_MACRO_1" } */ > - /* { dg-error "macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target *-*-* } use_of_MACRO_1 } */ > + /* { dg-error "macro 'MACRO_1' requires 2 arguments, but only 1 given" "" { target *-*-* } use_of_MACRO_1 } */ > /* { dg-begin-multiline-output "" } > MACRO_1(42); > ^ > @@ -28,7 +28,7 @@ void test_1 () > void test_2 () > { > MACRO_2(1, 2, 3); /* { dg-line "use_of_MACRO_2" } */ > - /* { dg-error "macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target *-*-* } use_of_MACRO_2 } */ > + /* { dg-error "macro 'MACRO_2' passed 3 arguments, but takes just 2" "" { target *-*-* } use_of_MACRO_2 } */ > /* { dg-begin-multiline-output "" } > MACRO_2(1, 2, 3); > ^ > --- gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c.jj 2020-01-14 20:02:46.649611841 +0100 > +++ gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c 2024-09-13 10:00:41.600033763 +0200 > @@ -4,8 +4,8 @@ > void test_1 () > { > MACRO_1(42); /* { dg-line "use_of_MACRO_1" } */ > - /* { dg-error "-:macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target c } use_of_MACRO_1 } */ > - /* { dg-error "macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target c++ } use_of_MACRO_1 } */ > + /* { dg-error "-:macro 'MACRO_1' requires 2 arguments, but only 1 given" "" { target c } use_of_MACRO_1 } */ > + /* { dg-error "macro 'MACRO_1' requires 2 arguments, but only 1 given" "" { target c++ } use_of_MACRO_1 } */ > /* { dg-message "-: macro .MACRO_1. defined here" "" { target *-*-* } def_of_MACRO_1 } */ > /* { dg-error "'MACRO_1' was not declared in this scope" "" { target c++ } use_of_MACRO_1 } */ > /* { dg-bogus "had not yet been defined" "" { target *-*-* } use_of_MACRO_1 } */ > @@ -15,8 +15,8 @@ void test_1 () > void test_2 () > { > MACRO_2(1, 2, 3); /* { dg-line "use_of_MACRO_2" } */ > - /* { dg-error "-:macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target c } use_of_MACRO_2 } */ > - /* { dg-error "macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target c++ } use_of_MACRO_2 } */ > + /* { dg-error "-:macro 'MACRO_2' passed 3 arguments, but takes just 2" "" { target c } use_of_MACRO_2 } */ > + /* { dg-error "macro 'MACRO_2' passed 3 arguments, but takes just 2" "" { target c++ } use_of_MACRO_2 } */ > /* { dg-message "-: macro .MACRO_2. defined here" "" { target *-*-* } def_of_MACRO_2 } */ > /* { dg-error "'MACRO_2' was not declared in this scope" "" { target c++ } use_of_MACRO_2 } */ > /* { dg-bogus "had not yet been defined" "" { target *-*-* } use_of_MACRO_2 } */ > --- gcc/testsuite/c-c++-common/cpp/macro-ranges.c.jj 2023-06-26 09:27:04.358366387 +0200 > +++ gcc/testsuite/c-c++-common/cpp/macro-ranges.c 2024-09-13 10:02:02.960908579 +0200 > @@ -4,13 +4,13 @@ > /* Verify that we output range information for diagnostics involving > macro definitions. */ > > -#undef __TIME__ /* { dg-warning {undefining "__TIME__"} } */ > +#undef __TIME__ /* { dg-warning {undefining '__TIME__'} } */ > /* { dg-begin-multiline-output "" } > #undef __TIME__ > ^~~~~~~~ > /* { dg-end-multiline-output "" } */ > > -#define XYZ 123 /* { dg-warning {macro "XYZ" is not used} } */ > +#define XYZ 123 /* { dg-warning {macro 'XYZ' is not used} } */ > /* { dg-begin-multiline-output "" } > #define XYZ 123 > ^~~ > @@ -19,7 +19,7 @@ > #define MACRO initial_definition /* { dg-line def_line } */ > > /* This locus is output first for the unused warning... */ > -/* { dg-warning {macro "MACRO" is not used} "" { target *-*-* } def_line } */ > +/* { dg-warning {macro 'MACRO' is not used} "" { target *-*-* } def_line } */ > /* { dg-begin-multiline-output "" } > #define MACRO initial_definition > ^~~~~ > @@ -32,20 +32,20 @@ > ^~~~~ > /* { dg-end-multiline-output "" } */ > > -#define MACRO /* { dg-warning {"MACRO" redefined} } */ > +#define MACRO /* { dg-warning {'MACRO' redefined} } */ > /* { dg-begin-multiline-output "" } > #define MACRO > ^~~~~ > { dg-end-multiline-output "" } */ > > -#define MACRO2(x,y) x /* { dg-note {macro "MACRO2" defined here} } */ > +#define MACRO2(x,y) x /* { dg-note {macro 'MACRO2' defined here} } */ > /* { dg-begin-multiline-output "" } > #define MACRO2(x,y) > ^~~~~~ > { dg-end-multiline-output "" } */ > > MACRO2(MACRO, MACRO) > -MACRO2(MACRO) /* { dg-error {macro "MACRO2" requires 2 arguments, but only 1 given} } */ > +MACRO2(MACRO) /* { dg-error {macro 'MACRO2' requires 2 arguments, but only 1 given} } */ > /* { dg-begin-multiline-output "" } > MACRO2(MACRO) > ^ > --- gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-4.c.jj 2022-08-27 23:01:28.319565957 +0200 > +++ gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-4.c 2024-09-13 09:24:42.386871955 +0200 > @@ -9,52 +9,52 @@ typedef __CHAR32_TYPE__ char32_t; > #endif > > const char32_t *a = U"\N{ZERO WIDTH NO BREAK SPACE}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{ZERO WIDTH NO-BREAK SPACE\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{ZERO WIDTH NO-BREAK SPACE\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *b = U"\N{giraffe face}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{GIRAFFE FACE\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{GIRAFFE FACE\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *c = U"\N{Giraffe Face}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{GIRAFFE FACE\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{GIRAFFE FACE\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *d = U"\N{ GiRaFfE_fAcE__ ___}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{GIRAFFE FACE\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{GIRAFFE FACE\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *e = U"\N{GIRAFFE}"; /* { dg-error "is not a valid universal character" } */ > const char32_t *f = U"\N{Hangul_Syllable_gAgg_}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *g = U"\N{HANGUL SYLLABLE gagg}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *h = U"\N{HANGULSYLLABLEGAGG}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *i = U"\N{HANGUL_SYLLABLE_GAGG}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *j = U"\N{HANGUL SYLLABLE }"; /* { dg-error "is not a valid universal character" } */ > const char32_t *k = U"\N{CJK-COMPATIBILITY-IDEOGRAPH-2F801}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *l = U"\N{CjK_COMPATIBILITY IDEOGRAPH 2f801}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *m = U"\N{CjK_COMPATIBILITY IDEOGRAPH 2f80}"; /* { dg-error "is not a valid universal character" } */ > const char32_t *n = U"\N{CJK COMPATIBILITY IDEOGRAPH-}"; /* { dg-error "is not a valid universal character" } */ > const char32_t *o = U"\N{CJK COMPATIBILITY IDEOGRAPH-X}"; /* { dg-error "is not a valid universal character" } */ > const char32_t *p = U"\N{Tibetan Letter A}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER A\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER A\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *q = U"\N{Tibetan LetterA}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER A\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER A\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *r = U"\N{Tibetan Letter-A}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER A\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER A\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *s = U"\N{Tibetan Letter -A}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER -A\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER -A\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *t = U"\N{TibetanLetter -A}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER -A\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER -A\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *u = U"\N{Hangul Jungseong oe}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG OE\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG OE\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *v = U"\N{Hangul Jungseong o- e}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *w = U"\N{HangulJungseongo-e}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *x = U"\N{Hangul Jungseong oe __ }"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG OE\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG OE\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *y = U"\N{Hangul Jungseong o- e __ }"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *z = U"\N{Hangul Jungseong o -e}"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *A = U"\N{Hangul Jungseong o -e __ }"; /* { dg-error "is not a valid universal character" } */ > - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ > + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ > const char32_t *B = U"\N{O}"; /* { dg-error "is not a valid universal character" } */ > --- gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-5.c.jj 2022-09-07 22:49:17.682000693 +0200 > +++ gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-5.c 2024-09-13 09:26:33.932323932 +0200 > @@ -10,8 +10,8 @@ int b = a\N{}); /* { dg-warning "empt > int c = a\N{); /* { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{; treating it as separate tokens" } */ > int d = a\N); > int e = a\NARG); > -int f = a\N{abc}); /* { dg-warning "\\\\N\\\{abc\\\} is not a valid universal character; treating it as separate tokens" } */ > +int f = a\N{abc}); /* { dg-warning "'\\\\N\\\{abc\\\}' is not a valid universal character; treating it as separate tokens" } */ > int g = a\N{ABC.123}); /* { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{ABC; treating it as separate tokens" } */ > -int h = a\N{NON-EXISTENT CHAR}); /* { dg-warning "\\\\N\\\{NON-EXISTENT CHAR\\\} is not a valid universal character; treating it as separate tokens" } */ > -int i = a\N{Latin_Small_Letter_A_With_Acute}); /* { dg-warning "\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\} is not a valid universal character; treating it as separate tokens" } */ > - /* { dg-message "did you mean \\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}\\?" "" { target *-*-* } .-1 } */ > +int h = a\N{NON-EXISTENT CHAR}); /* { dg-warning "'\\\\N\\\{NON-EXISTENT CHAR\\\}' is not a valid universal character; treating it as separate tokens" } */ > +int i = a\N{Latin_Small_Letter_A_With_Acute}); /* { dg-warning "'\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\}' is not a valid universal character; treating it as separate tokens" } */ > + /* { dg-message "did you mean '\\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}'\\?" "" { target *-*-* } .-1 } */ > --- gcc/testsuite/c-c++-common/cpp/pr88974.c.jj 2020-02-04 23:03:46.354221933 +0100 > +++ gcc/testsuite/c-c++-common/cpp/pr88974.c 2024-09-13 10:02:34.580471291 +0200 > @@ -2,6 +2,6 @@ > /* { dg-do preprocess } */ > > #if __has_include (<pr88974.h) > -/* { dg-error "missing terminating > character" "" { target *-*-* } .-1 } */ > -/* { dg-error "missing '\\\)' after .__has_include. operand" "" { target *-*-* } .-2 } */ > +/* { dg-error "missing terminating '>' character" "" { target *-*-* } .-1 } */ > +/* { dg-error "missing '\\\)' after '__has_include' operand" "" { target *-*-* } .-2 } */ > #endif > --- gcc/testsuite/c-c++-common/cpp/va-opt-error.c.jj 2020-01-14 20:02:46.649611841 +0100 > +++ gcc/testsuite/c-c++-common/cpp/va-opt-error.c 2024-09-13 10:13:45.145201935 +0200 > @@ -2,11 +2,11 @@ > /* { dg-options "-std=gnu99" { target c } } */ > /* { dg-options "-std=c++2a" { target c++ } } */ > > -#define ERR1(x) __VA_OPT__ /* { dg-warning "__VA_OPT__ can only appear" } */ > +#define ERR1(x) __VA_OPT__ /* { dg-warning "'__VA_OPT__' can only appear" } */ > #define ERR2(x) __VA_OPT__( /* { dg-warning "can only appear" } */ > #define ERR3(x) __VA_OPT__() /* { dg-warning "can only appear" } */ > > -#define ERR4(x,...) __VA_OPT__ /* { dg-error "unterminated __VA_OPT__" } */ > +#define ERR4(x,...) __VA_OPT__ /* { dg-error "unterminated '__VA_OPT__'" } */ > #define ERR5(x,...) __VA_OPT__( /* { dg-error "unterminated" } */ > #define ERR6(x,...) __VA_OPT__(() /* { dg-error "unterminated" } */ > > --- gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c.jj 2020-01-14 20:02:46.649611841 +0100 > +++ gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c 2024-09-13 10:14:04.422935674 +0200 > @@ -2,4 +2,4 @@ > /* { dg-options "-std=c11 -pedantic-errors" { target c } } */ > /* { dg-options "-std=c++17 -pedantic-errors" { target c++ } } */ > > -#define CALL(F, ...) F (7 __VA_OPT__(,) __VA_ARGS__) /* { dg-error "__VA_OPT__ is not available" } */ > +#define CALL(F, ...) F (7 __VA_OPT__(,) __VA_ARGS__) /* { dg-error "'__VA_OPT__' is not available" } */ > --- gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c 2024-09-13 10:08:32.580520316 +0200 > @@ -4,40 +4,40 @@ > // { dg-options "-finput-charset=UTF-8 -Winvalid-utf8" } > > // a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } > -// a�a { dg-warning "invalid UTF-8 character <80>" } > -// a�a { dg-warning "invalid UTF-8 character <bf>" } > -// a�a { dg-warning "invalid UTF-8 character <c0>" } > -// a�a { dg-warning "invalid UTF-8 character <c1>" } > -// a�a { dg-warning "invalid UTF-8 character <f5>" } > -// a�a { dg-warning "invalid UTF-8 character <ff>" } > -// a�a { dg-warning "invalid UTF-8 character <c2>" } > -// a�a { dg-warning "invalid UTF-8 character <e0>" } > -// a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" } > -// a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" } > -// a��a { dg-warning "invalid UTF-8 character <e0><bf>" } > -// a��a { dg-warning "invalid UTF-8 character <ec><80>" } > -// a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" } > -// a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" } > -// a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } > -// a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" } > -// a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } > -// { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } > +// a�a { dg-warning "invalid UTF-8 character '<80>'" } > +// a�a { dg-warning "invalid UTF-8 character '<bf>'" } > +// a�a { dg-warning "invalid UTF-8 character '<c0>'" } > +// a�a { dg-warning "invalid UTF-8 character '<c1>'" } > +// a�a { dg-warning "invalid UTF-8 character '<f5>'" } > +// a�a { dg-warning "invalid UTF-8 character '<ff>'" } > +// a�a { dg-warning "invalid UTF-8 character '<c2>'" } > +// a�a { dg-warning "invalid UTF-8 character '<e0>'" } > +// a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } > +// a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } > +// a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" } > +// a��a { dg-warning "invalid UTF-8 character '<ec><80>'" } > +// a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } > +// a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } > +// a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +// a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } > +// a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } > +// { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } > /* a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } */ > -/* a�a { dg-warning "invalid UTF-8 character <80>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <bf>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <c0>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <c1>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <f5>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <ff>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <c2>" } */ > -/* a�a { dg-warning "invalid UTF-8 character <e0>" } */ > -/* a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" } */ > -/* a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" } */ > -/* a��a { dg-warning "invalid UTF-8 character <e0><bf>" } */ > -/* a��a { dg-warning "invalid UTF-8 character <ec><80>" } */ > -/* a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" } */ > -/* a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" } */ > -/* a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } */ > -/* a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" } */ > -/* a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } */ > -/* { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } */ > +/* a�a { dg-warning "invalid UTF-8 character '<80>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<bf>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c0>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c1>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<f5>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<ff>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c2>'" } */ > +/* a�a { dg-warning "invalid UTF-8 character '<e0>'" } */ > +/* a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } */ > +/* a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } */ > +/* a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" } */ > +/* a��a { dg-warning "invalid UTF-8 character '<ec><80>'" } */ > +/* a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } */ > +/* a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } */ > +/* { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } */ > --- gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c 2024-09-13 10:09:09.274012870 +0200 > @@ -11,78 +11,78 @@ typedef __CHAR16_TYPE__ char16_t; > typedef __CHAR32_TYPE__ char32_t; > #endif > > -char32_t a = U'�'; // { dg-warning "invalid UTF-8 character <80>" } > -char32_t b = U'�'; // { dg-warning "invalid UTF-8 character <bf>" } > -char32_t c = U'�'; // { dg-warning "invalid UTF-8 character <c0>" } > -char32_t d = U'�'; // { dg-warning "invalid UTF-8 character <c1>" } > -char32_t e = U'�'; // { dg-warning "invalid UTF-8 character <f5>" } > -char32_t f = U'�'; // { dg-warning "invalid UTF-8 character <ff>" } > -char32_t g = U'�'; // { dg-warning "invalid UTF-8 character <c2>" } > -char32_t h = U'�'; // { dg-warning "invalid UTF-8 character <e0>" } > -char32_t i = U'���'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } > -char32_t j = U'���'; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } > -char32_t k = U'��'; // { dg-warning "invalid UTF-8 character <e0><bf>" } > -char32_t l = U'��'; // { dg-warning "invalid UTF-8 character <ec><80>" } > -char32_t m = U'���'; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } > -char32_t n = U'����'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } > -char32_t o = U'����'; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } > -char32_t p = U'����'; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } > -char32_t q = U'������'; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } > +char32_t a = U'�'; // { dg-warning "invalid UTF-8 character '<80>'" } > +char32_t b = U'�'; // { dg-warning "invalid UTF-8 character '<bf>'" } > +char32_t c = U'�'; // { dg-warning "invalid UTF-8 character '<c0>'" } > +char32_t d = U'�'; // { dg-warning "invalid UTF-8 character '<c1>'" } > +char32_t e = U'�'; // { dg-warning "invalid UTF-8 character '<f5>'" } > +char32_t f = U'�'; // { dg-warning "invalid UTF-8 character '<ff>'" } > +char32_t g = U'�'; // { dg-warning "invalid UTF-8 character '<c2>'" } > +char32_t h = U'�'; // { dg-warning "invalid UTF-8 character '<e0>'" } > +char32_t i = U'���'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } > +char32_t j = U'���'; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } > +char32_t k = U'��'; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } > +char32_t l = U'��'; // { dg-warning "invalid UTF-8 character '<ec><80>'" } > +char32_t m = U'���'; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } > +char32_t n = U'����'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } > +char32_t o = U'����'; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +char32_t p = U'����'; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } > +char32_t q = U'������'; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } > const char32_t *A = U"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -const char32_t *B = U"�"; // { dg-warning "invalid UTF-8 character <80>" } > -const char32_t *C = U"�"; // { dg-warning "invalid UTF-8 character <bf>" } > -const char32_t *D = U"�"; // { dg-warning "invalid UTF-8 character <c0>" } > -const char32_t *E = U"�"; // { dg-warning "invalid UTF-8 character <c1>" } > -const char32_t *F = U"�"; // { dg-warning "invalid UTF-8 character <f5>" } > -const char32_t *G = U"�"; // { dg-warning "invalid UTF-8 character <ff>" } > -const char32_t *H = U"�"; // { dg-warning "invalid UTF-8 character <c2>" } > -const char32_t *I = U"�"; // { dg-warning "invalid UTF-8 character <e0>" } > -const char32_t *J = U"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } > -const char32_t *K = U"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } > -const char32_t *L = U"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" } > -const char32_t *M = U"��"; // { dg-warning "invalid UTF-8 character <ec><80>" } > -const char32_t *N = U"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } > -const char32_t *O = U"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } > -const char32_t *P = U"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } > -const char32_t *Q = U"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } > -const char32_t *R = U"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } > +const char32_t *B = U"�"; // { dg-warning "invalid UTF-8 character '<80>'" } > +const char32_t *C = U"�"; // { dg-warning "invalid UTF-8 character '<bf>'" } > +const char32_t *D = U"�"; // { dg-warning "invalid UTF-8 character '<c0>'" } > +const char32_t *E = U"�"; // { dg-warning "invalid UTF-8 character '<c1>'" } > +const char32_t *F = U"�"; // { dg-warning "invalid UTF-8 character '<f5>'" } > +const char32_t *G = U"�"; // { dg-warning "invalid UTF-8 character '<ff>'" } > +const char32_t *H = U"�"; // { dg-warning "invalid UTF-8 character '<c2>'" } > +const char32_t *I = U"�"; // { dg-warning "invalid UTF-8 character '<e0>'" } > +const char32_t *J = U"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } > +const char32_t *K = U"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } > +const char32_t *L = U"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } > +const char32_t *M = U"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" } > +const char32_t *N = U"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } > +const char32_t *O = U"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } > +const char32_t *P = U"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +const char32_t *Q = U"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } > +const char32_t *R = U"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } > const char32_t *A1 = UR"(?߿ࠀ𐀀?)"; // { dg-bogus "invalid UTF-8 character" } > -const char32_t *B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <80>" } > -const char32_t *C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <bf>" } > -const char32_t *D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c0>" } > -const char32_t *E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c1>" } > -const char32_t *F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <f5>" } > -const char32_t *G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <ff>" } > -const char32_t *H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c2>" } > -const char32_t *I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <e0>" } > -const char32_t *J1 = UR"(??�)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } > -const char32_t *K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } > -const char32_t *L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <e0><bf>" } > -const char32_t *M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <ec><80>" } > -const char32_t *N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } > -const char32_t *O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } > -const char32_t *P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } > -const char32_t *Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } > -const char32_t *R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } > +const char32_t *B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<80>'" } > +const char32_t *C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<bf>'" } > +const char32_t *D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c0>'" } > +const char32_t *E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c1>'" } > +const char32_t *F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<f5>'" } > +const char32_t *G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<ff>'" } > +const char32_t *H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c2>'" } > +const char32_t *I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<e0>'" } > +const char32_t *J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } > +const char32_t *K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } > +const char32_t *L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } > +const char32_t *M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<ec><80>'" } > +const char32_t *N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } > +const char32_t *O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } > +const char32_t *P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +const char32_t *Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } > +const char32_t *R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } > const char *A2 = u8"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -const char *B2 = u8"�"; // { dg-warning "invalid UTF-8 character <80>" } > -const char *C2 = u8"�"; // { dg-warning "invalid UTF-8 character <bf>" } > -const char *D2 = u8"�"; // { dg-warning "invalid UTF-8 character <c0>" } > -const char *E2 = u8"�"; // { dg-warning "invalid UTF-8 character <c1>" } > -const char *F2 = u8"�"; // { dg-warning "invalid UTF-8 character <f5>" } > -const char *G2 = u8"�"; // { dg-warning "invalid UTF-8 character <ff>" } > -const char *H2 = u8"�"; // { dg-warning "invalid UTF-8 character <c2>" } > -const char *I2 = u8"�"; // { dg-warning "invalid UTF-8 character <e0>" } > -const char *J2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } > -const char *K2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } > -const char *L2 = u8"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" } > -const char *M2 = u8"��"; // { dg-warning "invalid UTF-8 character <ec><80>" } > -const char *N2 = u8"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } > -const char *O2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } > -const char *P2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } > -const char *Q2 = u8"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } > -const char *R2 = u8"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } > +const char *B2 = u8"�"; // { dg-warning "invalid UTF-8 character '<80>'" } > +const char *C2 = u8"�"; // { dg-warning "invalid UTF-8 character '<bf>'" } > +const char *D2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c0>'" } > +const char *E2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c1>'" } > +const char *F2 = u8"�"; // { dg-warning "invalid UTF-8 character '<f5>'" } > +const char *G2 = u8"�"; // { dg-warning "invalid UTF-8 character '<ff>'" } > +const char *H2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c2>'" } > +const char *I2 = u8"�"; // { dg-warning "invalid UTF-8 character '<e0>'" } > +const char *J2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } > +const char *K2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } > +const char *L2 = u8"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } > +const char *M2 = u8"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" } > +const char *N2 = u8"��?"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } > +const char *O2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } > +const char *P2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +const char *Q2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } > +const char *R2 = u8"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } > --- gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c 2024-09-13 10:09:24.901796747 +0200 > @@ -6,22 +6,22 @@ > #define I(x) > I(?߿ࠀ𐀀?) // { dg-bogus "invalid UTF-8 character" } > // { dg-error "is not valid in an identifier" "" { target c++ } .-1 } > -I(�) // { dg-warning "invalid UTF-8 character <80>" } > -I(�) // { dg-warning "invalid UTF-8 character <bf>" } > -I(�) // { dg-warning "invalid UTF-8 character <c0>" } > -I(�) // { dg-warning "invalid UTF-8 character <c1>" } > -I(�) // { dg-warning "invalid UTF-8 character <f5>" } > -I(�) // { dg-warning "invalid UTF-8 character <ff>" } > -I(�) // { dg-warning "invalid UTF-8 character <c2>" } > -I(�) // { dg-warning "invalid UTF-8 character <e0>" } > -I(���) // { dg-warning "invalid UTF-8 character <e0><80><bf>" } > -I(���) // { dg-warning "invalid UTF-8 character <e0><9f><80>" } > -I(��) // { dg-warning "invalid UTF-8 character <e0><bf>" } > -I(��) // { dg-warning "invalid UTF-8 character <ec><80>" } > -I(���) // { dg-warning "invalid UTF-8 character <ed><a0><80>" } > -I(����) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } > -I(����) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } > -I(����) // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c } } > +I(�) // { dg-warning "invalid UTF-8 character '<80>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<bf>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<c0>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<c1>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<f5>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<ff>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<c2>'" } > +I(�) // { dg-warning "invalid UTF-8 character '<e0>'" } > +I(���) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } > +I(���) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } > +I(��) // { dg-warning "invalid UTF-8 character '<e0><bf>'" } > +I(��) // { dg-warning "invalid UTF-8 character '<ec><80>'" } > +I(���) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } > +I(����) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } > +I(����) // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +I(����) // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c } } > // { dg-error "is not valid in an identifier" "" { target c++ } .-1 } > -I(������) // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c } } > +I(������) // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c } } > // { dg-error "is not valid in an identifier" "" { target c++ } .-1 } > --- gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c.jj 2023-03-27 22:36:52.329403025 +0200 > +++ gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c 2024-09-13 10:14:54.567243094 +0200 > @@ -16,8 +16,8 @@ > { dg-final { scan-sarif-file "\"level\": \"warning\"" } } > { dg-final { scan-sarif-file "\"ruleId\": \"-Winvalid-utf8\"" } } > { dg-final { scan-sarif-file "\"message\": " } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <98>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <99>"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<98>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<99>'"} } } > */ > --- gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c.jj 2023-03-27 22:36:52.329403025 +0200 > +++ gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c 2024-09-13 10:15:36.210667932 +0200 > @@ -54,42 +54,42 @@ > { dg-final { scan-sarif-file "\"level\": \"warning\"" } } > { dg-final { scan-sarif-file "\"ruleId\": \"-Winvalid-utf8\"" } } > { dg-final { scan-sarif-file "\"message\": " } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c0>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c1>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f5>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ff>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c2>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><80><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><9f><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ec><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ed><a0><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><80><80><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><8f><bf><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f4><90><80><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <fd><bf><bf><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c0>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c1>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f5>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ff>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c2>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><80><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><9f><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ec><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ed><a0><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><80><80><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><8f><bf><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f4><90><80><80>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <fd><bf><bf><bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } > - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c0>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c1>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f5>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ff>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c2>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><80><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><9f><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ec><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ed><a0><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><80><80><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><8f><bf><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f4><90><80><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<fd><bf><bf><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c0>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c1>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f5>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ff>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c2>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><80><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><9f><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ec><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ed><a0><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><80><80><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><8f><bf><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f4><90><80><80>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<fd><bf><bf><bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } > + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } > */ > --- gcc/testsuite/c-c++-common/pr68833-3.c.jj 2020-01-14 20:02:46.668611556 +0100 > +++ gcc/testsuite/c-c++-common/pr68833-3.c 2024-09-13 10:20:26.529658154 +0200 > @@ -2,6 +2,6 @@ > /* { dg-do preprocess } */ > /* { dg-options "-Werror=normalized" } */ > > -\u0F43 // { dg-error "`.U00000f43' is not in NFC .-Werror=normalized=." } > +\u0F43 // { dg-error "'.U00000f43' is not in NFC .-Werror=normalized=." } > > /* { dg-prune-output "treated as errors" } */ > --- gcc/testsuite/c-c++-common/raw-string-directive-1.c.jj 2022-11-05 20:51:33.396159443 +0100 > +++ gcc/testsuite/c-c++-common/raw-string-directive-1.c 2024-09-13 11:04:41.242185607 +0200 > @@ -32,19 +32,19 @@ line12 > )" > > #if R"(line 13 /* { dg-error "line13" } */ > -file:35:1: error: line14)" /* { dg-error "line14\\)\"\" is not valid" } */ > -#endif R"(line 15 /* { dg-warning "extra tokens at end of #endif" } */ > +file:35:1: error: line14)" > +#endif R"(line 15 /* { dg-warning "extra tokens at end of '#endif'" } */ > \ > line16)" "" > > -#ifdef XYZ R"(line17 /* { dg-warning "extra tokens at end of #ifdef" } */ > +#ifdef XYZ R"(line17 /* { dg-warning "extra tokens at end of '#ifdef'" } */ > \ > \ > line18)" > #endif > > #if 1 > -#else R"(line23 /* { dg-warning "extra tokens at end of #else" } */ > +#else R"(line23 /* { dg-warning "extra tokens at end of '#else'" } */ > \ > > line24)" > @@ -52,7 +52,7 @@ line24)" > > #if 0 > #elif R"(line 25 /* { dg-error "line25" } */ > -file:55:1: error: line26)" /* { dg-error "line26\\)\"\" is not valid" } */ > +file:55:1: error: line26)" > #endif > > #line 60 R"(file:60:1: warning: this file has a space > @@ -61,13 +61,13 @@ in it!)" > /* { dg-warning "this file has a space" "#line check" { target *-*-* } 60 } */ > #line 63 "file" > > -#undef X1 R"(line28 /* { dg-warning "extra tokens at end of #undef" } */ > +#undef X1 R"(line28 /* { dg-warning "extra tokens at end of '#undef'" } */ > line29 > \ > )" > > #ident R"(line30 > -line31)" R"(line 32 /* { dg-warning "extra tokens at end of #ident" } */ > +line31)" R"(line 32 /* { dg-warning "extra tokens at end of '#ident'" } */ > line 33)" > > #pragma GCC diagnostic ignored R"(-Woption /* { dg-warning "-Wpragmas" } */ > --- gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c.jj 2022-11-17 22:10:05.811657288 +0100 > +++ gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c 2024-09-13 09:14:54.198038830 +0200 > @@ -7,9 +7,9 @@ > > /* Various constants used by the fd state machine. */ > > -#define O_ACCMODE 42 /* { dg-warning "-: macro \"O_ACCMODE\" is not used" } */ > -#define O_RDONLY 0x1 /* { dg-warning "-: macro \"O_RDONLY\" is not used" } */ > -#define O_WRONLY 010 /* { dg-warning "-: macro \"O_WRONLY\" is not used" } */ > +#define O_ACCMODE 42 /* { dg-warning "-: macro 'O_ACCMODE' is not used" } */ > +#define O_RDONLY 0x1 /* { dg-warning "-: macro 'O_RDONLY' is not used" } */ > +#define O_WRONLY 010 /* { dg-warning "-: macro 'O_WRONLY' is not used" } */ > > void test_sm_fd_constants (void) > { > --- gcc/testsuite/gcc.dg/binary-constants-4.c.jj 2020-01-14 20:02:47.225603213 +0100 > +++ gcc/testsuite/gcc.dg/binary-constants-4.c 2024-09-13 11:36:25.100157383 +0200 > @@ -11,8 +11,8 @@ foo(void) > int i; > > d = 0b1101; > - d = 0b1101p1; /* { dg-error "invalid suffix \"p1\" on integer constant" } */ > + d = 0b1101p1; /* { dg-error "invalid suffix 'p1' on integer constant" } */ > d = 0x1101p1; > - i = 0b3011; /* { dg-error "invalid suffix \"b3011\" on integer constant" } */ > - i = 0b113; /* { dg-error "invalid digit \"3\" in binary constant" } */ > + i = 0b3011; /* { dg-error "invalid suffix 'b3011' on integer constant" } */ > + i = 0b113; /* { dg-error "invalid digit '3' in binary constant" } */ > } > --- gcc/testsuite/gcc.dg/builtin-redefine.c.jj 2023-06-26 09:27:04.362366331 +0200 > +++ gcc/testsuite/gcc.dg/builtin-redefine.c 2024-09-13 10:19:53.097119913 +0200 > @@ -27,7 +27,7 @@ > #define __TIME__ "X" /* Define while undefined. */ > #define __TIME__ "X" /* Re-define while defined. */ /* { dg-line time_prev } */ > > -#define __TIME__ "Y" /* { dg-warning "\"__TIME__\" redefined" } */ > +#define __TIME__ "Y" /* { dg-warning "'__TIME__' redefined" } */ > /* { dg-message "previous definition" "" { target *-*-* } time_prev } */ > > #undef __TIME__ /* Undefine while defined. */ > @@ -38,7 +38,7 @@ > #define __DATE__ "X" /* Define while undefined. */ > #define __DATE__ "X" /* Re-define while defined. */ /* { dg-line date_prev } */ > > -#define __DATE__ "Y" /* { dg-warning "\"__DATE__\" redefined" } */ > +#define __DATE__ "Y" /* { dg-warning "'__DATE__' redefined" } */ > /* { dg-message "previous definition" "" { target *-*-* } date_prev } */ > > #undef __DATE__ /* Undefine while defined. */ > @@ -47,7 +47,7 @@ > #define __TIMESTAMP__ "X" /* Define while already defined. */ > #define __TIMESTAMP__ "X" /* Re-define while defined. */ /* { dg-line timestamp_prev } */ > > -#define __TIMESTAMP__ "Y" /* { dg-warning "\"__TIMESTAMP__\" redefined" } */ > +#define __TIMESTAMP__ "Y" /* { dg-warning "'__TIMESTAMP__' redefined" } */ > /* { dg-message "previous definition" "" { target *-*-* } timestamp_prev } */ > > #undef __TIMESTAMP__ /* Undefine while defined. */ > @@ -71,9 +71,9 @@ > /* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } .-1 } */ > #endif > > -#define __LINE__ 0 /* { dg-warning "\"__LINE__\" redef" } */ > -#define __INCLUDE_LEVEL__ 0 /* { dg-warning "\"__INCLUDE_LEVEL__\" redef" } */ > -#define __COUNTER__ 0 /* { dg-warning "\"__COUNTER__\" redef" } */ > +#define __LINE__ 0 /* { dg-warning "'__LINE__' redef" } */ > +#define __INCLUDE_LEVEL__ 0 /* { dg-warning "'__INCLUDE_LEVEL__' redef" } */ > +#define __COUNTER__ 0 /* { dg-warning "'__COUNTER__' redef" } */ > > > int unused; /* Silence `ISO C forbids an empty translation unit' warning. */ > --- gcc/testsuite/gcc.dg/cpp/19951025-1.c.jj 2020-01-14 20:02:47.250602839 +0100 > +++ gcc/testsuite/gcc.dg/cpp/19951025-1.c 2024-09-13 09:15:40.657393073 +0200 > @@ -1,4 +1,4 @@ > /* { dg-do preprocess } */ > -/* { dg-error "include expects" "include" { target *-*-* } .+2 } */ > +/* { dg-error "'#include' expects" "include" { target *-*-* } .+2 } */ > /* { dg-error "newline at end" "newline" { target *-*-* } .+1 } */ > #include /\ > --- gcc/testsuite/gcc.dg/cpp/c11-warning-1.c.jj 2023-11-07 23:15:16.676412791 +0100 > +++ gcc/testsuite/gcc.dg/cpp/c11-warning-1.c 2024-09-13 09:16:12.268953690 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=c11 -pedantic-errors" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-error "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > +/* { dg-error "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/c11-warning-2.c.jj 2023-11-07 23:15:16.676412791 +0100 > +++ gcc/testsuite/gcc.dg/cpp/c11-warning-2.c 2024-09-13 09:16:26.440756713 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=c11 -pedantic" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-warning "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > +/* { dg-warning "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/c11-warning-3.c.jj 2023-11-07 23:15:16.676412791 +0100 > +++ gcc/testsuite/gcc.dg/cpp/c11-warning-3.c 2024-09-13 09:16:40.989554490 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=c11 -Wc11-c23-compat" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c.jj 2023-11-08 23:04:12.263052031 +0100 > +++ gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c 2024-09-13 09:28:39.447584387 +0200 > @@ -5,53 +5,53 @@ > #define A > #undef B > > -#elifdef A /* { dg-error "#elifdef without #if" } */ > -#elifdef B /* { dg-error "#elifdef without #if" } */ > -#elifndef A /* { dg-error "#elifndef without #if" } */ > -#elifndef B /* { dg-error "#elifndef without #if" } */ > +#elifdef A /* { dg-error "'#elifdef' without '#if'" } */ > +#elifdef B /* { dg-error "'#elifdef' without '#if'" } */ > +#elifndef A /* { dg-error "'#elifndef' without '#if'" } */ > +#elifndef B /* { dg-error "'#elifndef' without '#if'" } */ > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifdef A /* { dg-error "#elifdef after #else" } */ > +#elifdef A /* { dg-error "'#elifdef' after '#else'" } */ > #endif > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifdef B /* { dg-error "#elifdef after #else" } */ > +#elifdef B /* { dg-error "'#elifdef' after '#else'" } */ > #endif > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifndef A /* { dg-error "#elifndef after #else" } */ > +#elifndef A /* { dg-error "'#elifndef' after '#else'" } */ > #endif > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifndef B /* { dg-error "#elifndef after #else" } */ > +#elifndef B /* { dg-error "'#elifndef' after '#else'" } */ > #endif > > #if 0 > -#elifdef A = /* { dg-error "extra tokens at end of #elifdef directive" } */ > +#elifdef A = /* { dg-error "extra tokens at end of '#elifdef' directive" } */ > #endif > > #if 0 > -#elifdef B = /* { dg-error "extra tokens at end of #elifdef directive" } */ > +#elifdef B = /* { dg-error "extra tokens at end of '#elifdef' directive" } */ > #endif > > #if 0 > -#elifndef A = /* { dg-error "extra tokens at end of #elifndef directive" } */ > +#elifndef A = /* { dg-error "extra tokens at end of '#elifndef' directive" } */ > #endif > > #if 0 > -#elifndef B = /* { dg-error "extra tokens at end of #elifndef directive" } */ > +#elifndef B = /* { dg-error "extra tokens at end of '#elifndef' directive" } */ > #endif > > #if 0 > -#elifdef /* { dg-error "no macro name given in #elifdef directive" } */ > +#elifdef /* { dg-error "no macro name given in '#elifdef' directive" } */ > #endif > > #if 0 > -#elifndef /* { dg-error "no macro name given in #elifndef directive" } */ > +#elifndef /* { dg-error "no macro name given in '#elifndef' directive" } */ > #endif > > #if 0 > --- gcc/testsuite/gcc.dg/cpp/c23-warning-2.c.jj 2023-11-08 23:04:12.263052031 +0100 > +++ gcc/testsuite/gcc.dg/cpp/c23-warning-2.c 2024-09-13 09:17:09.058164353 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=c23 -pedantic-errors -Wc11-c23-compat" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/embed-2.c.jj 2024-09-12 23:12:54.032424102 +0200 > +++ gcc/testsuite/gcc.dg/cpp/embed-2.c 2024-09-13 09:29:05.961216955 +0200 > @@ -6,7 +6,7 @@ > #endif > > int a = > -#embed __FILE__ limit (1) /* { dg-error "#embed before C23 is a GCC extension" } */ > +#embed __FILE__ limit (1) /* { dg-error "'#embed' before C23 is a GCC extension" } */ > ; > int b = > (__extension__ > --- gcc/testsuite/gcc.dg/cpp/embed-3.c.jj 2024-09-12 23:12:54.033424088 +0200 > +++ gcc/testsuite/gcc.dg/cpp/embed-3.c 2024-09-13 09:29:23.330976243 +0200 > @@ -6,7 +6,7 @@ > #endif > > int a = > -#embed __FILE__ limit (1) /* { dg-warning "#embed before C23 is a GCC extension" } */ > +#embed __FILE__ limit (1) /* { dg-warning "'#embed' before C23 is a GCC extension" } */ > ; > int b = > (__extension__ > --- gcc/testsuite/gcc.dg/cpp/embed-4.c.jj 2024-09-12 23:12:54.033424088 +0200 > +++ gcc/testsuite/gcc.dg/cpp/embed-4.c 2024-09-13 09:30:18.055217866 +0200 > @@ -4,10 +4,10 @@ > #if __has_embed(__FILE__ limit(6)) > #endif > /* { dg-error "-:'__has_embed' not supported in traditional C" "" { target *-*-* } .-2 } */ > -/* { dg-error "-:missing binary operator before token \\\"\\\(\\\"" "" { target *-*-* } .-3 } */ > +/* { dg-error "-:missing binary operator before token '\\\('" "" { target *-*-* } .-3 } */ > #define FOO 20000,20001,20002 > #define BAR 30000,30001,30002 > #embed __FILE__ limit (4) prefix(10000,10001,10002+) suffix(+10003,10004,10005) > -/* { dg-error "-:#embed not supported in traditional C" "" { target *-*-* } .-1 } */ > +/* { dg-error "-:'#embed' not supported in traditional C" "" { target *-*-* } .-1 } */ > #embed __FILE__ limit (6) prefix(FOO,) suffix(,BAR) > -/* { dg-error "-:#embed not supported in traditional C" "" { target *-*-* } .-1 } */ > +/* { dg-error "-:'#embed' not supported in traditional C" "" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/expr.c.jj 2023-11-28 23:02:11.787089470 +0100 > +++ gcc/testsuite/gcc.dg/cpp/expr.c 2024-09-13 09:30:50.835763588 +0200 > @@ -9,27 +9,27 @@ > > /* Neil Booth, 19 Jul 2002. */ > > -#if (1 ? -2: 0 + 1U) < 0 /* { dg-warning {the left operand of ":" changes sign} } */ > +#if (1 ? -2: 0 + 1U) < 0 /* { dg-warning {the left operand of ':' changes sign} } */ > #error /* { dg-bogus "error" } */ > #endif > > -#if (0 ? 0 + 1U: -2) < 0 /* { dg-warning {the right operand of ":" changes sign} } */ > +#if (0 ? 0 + 1U: -2) < 0 /* { dg-warning {the right operand of ':' changes sign} } */ > #error /* { dg-bogus "error" } */ > #endif > > /* PR preprocessor/112701 */ > -#if (0 ? 0/0u : -1) < 0 /* { dg-warning {the right operand of ":" changes sign} } */ > +#if (0 ? 0/0u : -1) < 0 /* { dg-warning {the right operand of ':' changes sign} } */ > #error /* { dg-bogus "error" } */ > #endif > > -#if (0 ? 0u/0 : -1) < 0 /* { dg-warning {the right operand of ":" changes sign} } */ > +#if (0 ? 0u/0 : -1) < 0 /* { dg-warning {the right operand of ':' changes sign} } */ > #error /* { dg-bogus "error" } */ > #endif > > -#if (1 ? -1 : 0/0u) < 0 /* { dg-warning {the left operand of ":" changes sign} } */ > +#if (1 ? -1 : 0/0u) < 0 /* { dg-warning {the left operand of ':' changes sign} } */ > #error /* { dg-bogus "error" } */ > #endif > > -#if (1 ? -1 : 0u/0) < 0 /* { dg-warning {the left operand of ":" changes sign} } */ > +#if (1 ? -1 : 0u/0) < 0 /* { dg-warning {the left operand of ':' changes sign} } */ > #error /* { dg-bogus "error" } */ > #endif > --- gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c.jj 2021-10-07 23:03:44.118934628 +0200 > +++ gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c 2024-09-13 09:32:47.910141161 +0200 > @@ -5,53 +5,53 @@ > #define A > #undef B > > -#elifdef A /* { dg-error "#elifdef without #if" } */ > -#elifdef B /* { dg-error "#elifdef without #if" } */ > -#elifndef A /* { dg-error "#elifndef without #if" } */ > -#elifndef B /* { dg-error "#elifndef without #if" } */ > +#elifdef A /* { dg-error "'#elifdef' without '#if'" } */ > +#elifdef B /* { dg-error "'#elifdef' without '#if'" } */ > +#elifndef A /* { dg-error "'#elifndef' without '#if'" } */ > +#elifndef B /* { dg-error "'#elifndef' without '#if'" } */ > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifdef A /* { dg-error "#elifdef after #else" } */ > +#elifdef A /* { dg-error "'#elifdef' after '#else'" } */ > #endif > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifdef B /* { dg-error "#elifdef after #else" } */ > +#elifdef B /* { dg-error "'#elifdef' after '#else'" } */ > #endif > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifndef A /* { dg-error "#elifndef after #else" } */ > +#elifndef A /* { dg-error "'#elifndef' after '#else'" } */ > #endif > > #if 1 /* { dg-error "-:began here" } */ > #else > -#elifndef B /* { dg-error "#elifndef after #else" } */ > +#elifndef B /* { dg-error "'#elifndef' after '#else'" } */ > #endif > > #if 0 > -#elifdef A = /* { dg-warning "extra tokens at end of #elifdef directive" } */ > +#elifdef A = /* { dg-warning "extra tokens at end of '#elifdef' directive" } */ > #endif > > #if 0 > -#elifdef B = /* { dg-warning "extra tokens at end of #elifdef directive" } */ > +#elifdef B = /* { dg-warning "extra tokens at end of '#elifdef' directive" } */ > #endif > > #if 0 > -#elifndef A = /* { dg-warning "extra tokens at end of #elifndef directive" } */ > +#elifndef A = /* { dg-warning "extra tokens at end of '#elifndef' directive" } */ > #endif > > #if 0 > -#elifndef B = /* { dg-warning "extra tokens at end of #elifndef directive" } */ > +#elifndef B = /* { dg-warning "extra tokens at end of '#elifndef' directive" } */ > #endif > > #if 0 > -#elifdef /* { dg-error "no macro name given in #elifdef directive" } */ > +#elifdef /* { dg-error "no macro name given in '#elifdef' directive" } */ > #endif > > #if 0 > -#elifndef /* { dg-error "no macro name given in #elifndef directive" } */ > +#elifndef /* { dg-error "no macro name given in '#elifndef' directive" } */ > #endif > > #if 0 > --- gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c.jj 2023-11-07 23:15:16.676412791 +0100 > +++ gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c 2024-09-13 09:33:40.750408891 +0200 > @@ -6,7 +6,7 @@ > #undef B > > #if 0 > -#elifdef A /* { dg-warning "#elifdef before C23 is a GCC extension" } */ > +#elifdef A /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ > #define M1 1 > #endif > > @@ -25,7 +25,7 @@ > #endif > > #if 0 > -#elifndef B /* { dg-warning "#elifndef before C23 is a GCC extension" } */ > +#elifndef B /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ > #define M2 2 > #endif > > @@ -34,32 +34,32 @@ > #endif > > #if 0 > -#elifdef A /* { dg-warning "#elifdef before C23 is a GCC extension" } */ > +#elifdef A /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ > #else > #error "#elifdef A did not apply" > #endif > > #if 0 > -#elifndef B /* { dg-warning "#elifndef before C23 is a GCC extension" } */ > +#elifndef B /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ > #else > #error "#elifndef B did not apply" > #endif > > #if 1 > -#elifdef A /* { dg-warning "#elifdef before C23 is a GCC extension" } */ > +#elifdef A /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ > #endif > > #if 1 > -#elifndef B /* { dg-warning "#elifndef before C23 is a GCC extension" } */ > +#elifndef B /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ > #endif > > /* As with #elif, the syntax of the new directives is relaxed after a > non-skipped group. */ > > #if 1 > -#elifdef x * y /* { dg-warning "#elifdef before C23 is a GCC extension" } */ > +#elifdef x * y /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ > #endif > > #if 1 > -#elifndef ! /* { dg-warning "#elifndef before C23 is a GCC extension" } */ > +#elifndef ! /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ > #endif > --- gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c.jj 2023-11-07 23:15:16.676412791 +0100 > +++ gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c 2024-09-13 09:34:33.057684009 +0200 > @@ -6,7 +6,7 @@ > #undef B > > #if 0 > -#elifdef A /* { dg-error "#elifdef before C23 is a GCC extension" } */ > +#elifdef A /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ > #define M1 1 > #endif > > @@ -25,7 +25,7 @@ > #endif > > #if 0 > -#elifndef B /* { dg-error "#elifndef before C23 is a GCC extension" } */ > +#elifndef B /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ > #define M2 2 > #endif > > @@ -34,32 +34,32 @@ > #endif > > #if 0 > -#elifdef A /* { dg-error "#elifdef before C23 is a GCC extension" } */ > +#elifdef A /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ > #else > #error "#elifdef A did not apply" > #endif > > #if 0 > -#elifndef B /* { dg-error "#elifndef before C23 is a GCC extension" } */ > +#elifndef B /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ > #else > #error "#elifndef B did not apply" > #endif > > #if 1 > -#elifdef A /* { dg-error "#elifdef before C23 is a GCC extension" } */ > +#elifdef A /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ > #endif > > #if 1 > -#elifndef B /* { dg-error "#elifndef before C23 is a GCC extension" } */ > +#elifndef B /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ > #endif > > /* As with #elif, the syntax of the new directives is relaxed after a > non-skipped group. */ > > #if 1 > -#elifdef x * y /* { dg-error "#elifdef before C23 is a GCC extension" } */ > +#elifdef x * y /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ > #endif > > #if 1 > -#elifndef ! /* { dg-error "#elifndef before C23 is a GCC extension" } */ > +#elifndef ! /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ > #endif > --- gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c.jj 2023-11-07 23:15:16.676412791 +0100 > +++ gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c 2024-09-13 10:03:13.504932987 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=gnu11 -pedantic-errors" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-error "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > +/* { dg-error "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c.jj 2023-11-07 23:15:16.677412777 +0100 > +++ gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c 2024-09-13 10:03:23.260798068 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=gnu11 -pedantic" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-warning "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > +/* { dg-warning "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c.jj 2023-11-07 23:15:16.677412777 +0100 > +++ gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c 2024-09-13 10:03:33.458657039 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=gnu11 -Wc11-c23-compat" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c.jj 2023-11-08 23:04:12.263052031 +0100 > +++ gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c 2024-09-13 10:03:55.953345947 +0200 > @@ -3,4 +3,4 @@ > /* { dg-options "-std=gnu23 -pedantic-errors -Wc11-c23-compat" } */ > > #warning example text /* { dg-warning "example text" } */ > -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ > --- gcc/testsuite/gcc.dg/cpp/include6.c.jj 2020-01-14 20:02:47.256602748 +0100 > +++ gcc/testsuite/gcc.dg/cpp/include6.c 2024-09-13 10:04:29.889876620 +0200 > @@ -3,12 +3,12 @@ > > #include <stddef.h> > #include "stddef.h" > -#include L"stddef.h" /* { dg-error "include expects" } */ > -#include u"stddef.h" /* { dg-error "include expects" } */ > -#include U"stddef.h" /* { dg-error "include expects" } */ > -#include u8"stddef.h" /* { dg-error "include expects" } */ > -#include R"(stddef.h)" /* { dg-error "include expects" } */ > -#include LR"(stddef.h)" /* { dg-error "include expects" } */ > -#include uR"(stddef.h)" /* { dg-error "include expects" } */ > -#include UR"(stddef.h)" /* { dg-error "include expects" } */ > -#include u8R"(stddef.h)" /* { dg-error "include expects" } */ > +#include L"stddef.h" /* { dg-error "'#include' expects" } */ > +#include u"stddef.h" /* { dg-error "'#include' expects" } */ > +#include U"stddef.h" /* { dg-error "'#include' expects" } */ > +#include u8"stddef.h" /* { dg-error "'#include' expects" } */ > +#include R"(stddef.h)" /* { dg-error "'#include' expects" } */ > +#include LR"(stddef.h)" /* { dg-error "'#include' expects" } */ > +#include uR"(stddef.h)" /* { dg-error "'#include' expects" } */ > +#include UR"(stddef.h)" /* { dg-error "'#include' expects" } */ > +#include u8R"(stddef.h)" /* { dg-error "'#include' expects" } */ > --- gcc/testsuite/gcc.dg/cpp/pr35322.c.jj 2020-01-14 20:02:47.259602704 +0100 > +++ gcc/testsuite/gcc.dg/cpp/pr35322.c 2024-09-13 09:37:37.032143154 +0200 > @@ -1,4 +1,4 @@ > /* Test case for PR 35322 -- _Pragma ICE. */ > > /* { dg-do preprocess } */ > -_Pragma("GCC dependency") /* { dg-error "#pragma dependency expects" } */ > +_Pragma("GCC dependency") /* { dg-error "'#pragma GCC dependency' expects" } */ > --- gcc/testsuite/gcc.dg/cpp/tr-warn6.c.jj 2020-01-14 20:02:47.262602659 +0100 > +++ gcc/testsuite/gcc.dg/cpp/tr-warn6.c 2024-09-13 10:05:03.649409740 +0200 > @@ -4,15 +4,15 @@ > /* { dg-do preprocess } */ > /* { dg-options "-Wtraditional" } */ > > -#define foo1(h) sdf "h3" fds "h" /* { dg-warning "macro argument \"h\" would be stringified" "traditional stringification" } */ > -#define foo2(h2) sdf "h2" fds "h3" /* { dg-warning "macro argument \"h2\" would be stringified" "traditional stringification" } */ > -#define foo3(h3) sdf "h2" fds "h3" /* { dg-warning "macro argument \"h3\" would be stringified" "traditional stringification" } */ > -#define foo4(h) sdf 'h3' fds 'h' /* { dg-warning "macro argument \"h\" would be stringified" "traditional stringification" } */ > -#define foo5(h2) sdf 'h2' fds 'h3' /* { dg-warning "macro argument \"h2\" would be stringified" "traditional stringification" } */ > -#define foo6(h3) sdf 'h2' fds 'h3' /* { dg-warning "macro argument \"h3\" would be stringified" "traditional stringification" } */ > -#define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument \"hello\" would be stringified" "traditional stringification" } */ > +#define foo1(h) sdf "h3" fds "h" /* { dg-warning "macro argument 'h' would be stringified" "traditional stringification" } */ > +#define foo2(h2) sdf "h2" fds "h3" /* { dg-warning "macro argument 'h2' would be stringified" "traditional stringification" } */ > +#define foo3(h3) sdf "h2" fds "h3" /* { dg-warning "macro argument 'h3' would be stringified" "traditional stringification" } */ > +#define foo4(h) sdf 'h3' fds 'h' /* { dg-warning "macro argument 'h' would be stringified" "traditional stringification" } */ > +#define foo5(h2) sdf 'h2' fds 'h3' /* { dg-warning "macro argument 'h2' would be stringified" "traditional stringification" } */ > +#define foo6(h3) sdf 'h2' fds 'h3' /* { dg-warning "macro argument 'h3' would be stringified" "traditional stringification" } */ > +#define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument 'hello' would be stringified" "traditional stringification" } */ > /* Catch the second warning from the above line. */ > -/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } .-2 } */ > +/* { dg-warning "macro argument 'world' would be stringified" "traditional stringification second warning" { target *-*-* } .-2 } */ > > # 19 "sys-header.h" 3 > /* We are in system headers now, no -Wtraditional warnings should issue. */ > --- gcc/testsuite/gcc.dg/cpp/undef2.c.jj 2023-06-26 09:27:04.364366303 +0200 > +++ gcc/testsuite/gcc.dg/cpp/undef2.c 2024-09-13 09:38:29.270422526 +0200 > @@ -3,11 +3,11 @@ > > /* { dg-do preprocess } */ > > -#undef __DATE__ /* { dg-warning "undefining \"__DATE__\"" } */ > -#undef __TIME__ /* { dg-warning "undefining \"__TIME__\"" } */ > -#undef __FILE__ /* { dg-warning "undefining \"__FILE__\"" } */ > -#undef __LINE__ /* { dg-warning "undefining \"__LINE__\"" } */ > -#undef __STDC__ /* { dg-warning "undefining \"__STDC__\"" } */ > +#undef __DATE__ /* { dg-warning "undefining '__DATE__'" } */ > +#undef __TIME__ /* { dg-warning "undefining '__TIME__'" } */ > +#undef __FILE__ /* { dg-warning "undefining '__FILE__'" } */ > +#undef __LINE__ /* { dg-warning "undefining '__LINE__'" } */ > +#undef __STDC__ /* { dg-warning "undefining '__STDC__'" } */ > > /* These should be protected from #undef, but aren't, because they > are set with normal #define commands - and on top of that, some > --- gcc/testsuite/gcc.dg/cpp/warn-comments.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-comments.c 2024-09-13 10:06:01.869604582 +0200 > @@ -1,7 +1,7 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wcomments" } > > -/* /* */ // { dg-warning "4: \"\.\*\" within comment .-Wcomment." } > +/* /* */ // { dg-warning "4: '\.\*\' within comment .-Wcomment." } > > // \ > // { dg-warning "1: multi-line comment .-Wcomment." "multi-line" { target *-*-* } .-1 } > --- gcc/testsuite/gcc.dg/cpp/warn-comments-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-comments-2.c 2024-09-13 10:05:30.133043484 +0200 > @@ -1,7 +1,7 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=comments" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." } > +/* /* */ // { dg-error "'\.\*' within comment .-Werror=comment." } > > // \ > // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } .-1 } > --- gcc/testsuite/gcc.dg/cpp/warn-comments-3.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-comments-3.c 2024-09-13 10:05:45.719827927 +0200 > @@ -1,7 +1,7 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=comment" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." } > +/* /* */ // { dg-error "'\.\*' within comment .-Werror=comment." } > > // \ > // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } .-1 } > --- gcc/testsuite/gcc.dg/cpp/warn-cxx-compat.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-cxx-compat.c 2024-09-13 10:06:43.508028740 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wc++-compat" } > > -#define not ! // { dg-warning "identifier \"not\" is a special operator name in C\\+\\+ .-Wc\\+\\+-compat." } > +#define not ! // { dg-warning "identifier 'not' is a special operator name in C\\+\\+ .-Wc\\+\\+-compat." } > --- gcc/testsuite/gcc.dg/cpp/warn-cxx-compat-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-cxx-compat-2.c 2024-09-13 10:06:33.433168076 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=c++-compat" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -#define not ! // { dg-error "identifier \"not\" is a special operator name in C\\+\\+ .-Werror=c\\+\\+-compat." } > +#define not ! // { dg-error "identifier 'not' is a special operator name in C\\+\\+ .-Werror=c\\+\\+-compat." } > --- gcc/testsuite/gcc.dg/cpp/warn-deprecated.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-deprecated.c 2024-09-13 09:17:54.870527587 +0200 > @@ -1,7 +1,7 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wdeprecated" } > > -#assert x(x) // { dg-warning "#assert is a deprecated GCC extension .-Wdeprecated." } > +#assert x(x) // { dg-warning "'#assert' is a deprecated GCC extension .-Wdeprecated." } > > #if #x(x) // { dg-warning "assertions are a deprecated extension .-Wdeprecated." } > #endif > --- gcc/testsuite/gcc.dg/cpp/warn-deprecated-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-deprecated-2.c 2024-09-13 09:17:36.687780318 +0200 > @@ -1,7 +1,7 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=deprecated" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -#assert x(x) // { dg-error "#assert is a deprecated GCC extension .-Werror=deprecated." } > +#assert x(x) // { dg-error "'#assert' is a deprecated GCC extension .-Werror=deprecated." } > > #if #x(x) // { dg-error "assertions are a deprecated extension .-Werror=deprecated." } > #endif > --- gcc/testsuite/gcc.dg/cpp/warn-long-long.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-long-long.c 2024-09-13 10:49:43.105434975 +0200 > @@ -1,6 +1,6 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Wlong-long" } > > -#if 0LL // { dg-warning "traditional C rejects the \"LL\" suffix .-Wlong-long." } > +#if 0LL // { dg-warning "traditional C rejects the 'LL' suffix .-Wlong-long." } > // { dg-warning "use of C99 long long integer constant .-Wlong-long." "use long long" { target *-*-* } .-1 } > #endif > --- gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c 2024-09-13 10:49:27.879644101 +0200 > @@ -1,6 +1,6 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Werror=long-long" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -#if 0LL // { dg-error "traditional C rejects the \"LL\" suffix .-Werror=long-long." } > +#if 0LL // { dg-error "traditional C rejects the 'LL' suffix .-Werror=long-long." } > // { dg-error "use of C99 long long integer constant .-Werror=long-long." "use long long" { target *-*-* } .-1 } > #endif > --- gcc/testsuite/gcc.dg/cpp/warn-normalized-1.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-1.c 2024-09-13 09:18:28.026067303 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wnormalized=nfc" } > > -\u0F43 // { dg-warning "`.U00000f43' is not in NFC .-Wnormalized=." } > +\u0F43 // { dg-warning "'.U00000f43' is not in NFC .-Wnormalized=." } > --- gcc/testsuite/gcc.dg/cpp/warn-normalized-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-2.c 2024-09-13 09:18:37.504935755 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wnormalized=nfkc" } > > -\u00AA // { dg-warning "`.U000000aa' is not in NFKC .-Wnormalized=." } > +\u00AA // { dg-warning "'.U000000aa' is not in NFKC .-Wnormalized=." } > --- gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c 2024-09-13 09:18:49.252772719 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=normalized=nfc" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -\u0F43 // { dg-error "`.U00000f43' is not in NFC .-Werror=normalized=." } > +\u0F43 // { dg-error "'.U00000f43' is not in NFC .-Werror=normalized=." } > --- gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c.jj 2021-11-01 23:01:30.575702414 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c 2024-09-13 09:19:28.158232793 +0200 > @@ -8,13 +8,13 @@ > > The UTF-8 encoding of U+0F43 TIBETAN LETTER GHA is: E0 BD 83. */ > > -foo before_\u0F43_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > +foo before_\u0F43_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > /* { dg-begin-multiline-output "" } > foo before_\u0F43_after bar > ^~~~~~~~~~~~~~~~~~~ > { dg-end-multiline-output "" } */ > > -foo before_གྷ_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > +foo before_གྷ_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > /* { dg-begin-multiline-output "" } > foo before_<e0><bd><83>_after bar > ^~~~~~~~~~~~~~~~~~~~~~~~~ > --- gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c.jj 2021-11-01 23:01:30.575702414 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c 2024-09-13 09:39:04.114941851 +0200 > @@ -6,13 +6,13 @@ > U+0F42 TIBETAN LETTER GA: ག > U+0FB7 TIBETAN SUBJOINED LETTER HA: ྷ */ > > -foo before_\u0F43_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > +foo before_\u0F43_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > /* { dg-begin-multiline-output "" } > foo before_\u0F43_after bar > ^~~~~~~~~~~~~~~~~~~ > { dg-end-multiline-output "" } */ > > -foo before_གྷ_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > +foo before_གྷ_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } > /* { dg-begin-multiline-output "" } > foo before_<U+0F43>_after bar > ^~~~~~~~~~~~~~~~~~~~~ > --- gcc/testsuite/gcc.dg/cpp/warn-redefined.c.jj 2023-06-26 09:27:04.364366303 +0200 > +++ gcc/testsuite/gcc.dg/cpp/warn-redefined.c 2024-09-13 09:39:52.399275771 +0200 > @@ -6,13 +6,13 @@ > // { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } .-1 } > #endif > > -#define __TIME__ "X" // { dg-warning "\"__TIME__\" redefined .-Wbuiltin-macro-redefined." } > +#define __TIME__ "X" // { dg-warning "'__TIME__' redefined .-Wbuiltin-macro-redefined." } > > #define __TIME__ "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } > - // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } .-1 } > + // { dg-warning "'__TIME__' redefined" "not-builtin-1" { target *-*-* } .-1 } > // { dg-message "previous definition" "previous-1" { target *-*-* } 9 } > > #define X "X" > #define X "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } > - // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } .-1 } > + // { dg-warning "'X' redefined" "not-builtin-2" { target *-*-* } .-1 } > // { dg-message "previous definition" "previous-2" { target *-*-* } 15 } > --- gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c.jj 2023-06-26 09:27:04.364366303 +0200 > +++ gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c 2024-09-13 09:39:40.259443242 +0200 > @@ -6,13 +6,13 @@ > // { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } .-1 } > #endif > > -#define __TIME__ "X" // { dg-error "\"__TIME__\" redefined .-Werror=builtin-macro-redefined." } > +#define __TIME__ "X" // { dg-error "'__TIME__' redefined .-Werror=builtin-macro-redefined." } > > #define __TIME__ "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } > - // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } .-1 } > + // { dg-warning "'__TIME__' redefined" "not-builtin-1" { target *-*-* } .-1 } > // { dg-message "previous definition" "previous-1" { target *-*-* } 9 } > > #define X "X" > #define X "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } > - // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } .-1 } > + // { dg-warning "'X' redefined" "not-builtin-2" { target *-*-* } .-1 } > // { dg-message "previous definition" "previous-2" { target *-*-* } 15 } > --- gcc/testsuite/gcc.dg/cpp/warn-traditional.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-traditional.c 2024-09-13 09:46:09.893068261 +0200 > @@ -1,18 +1,18 @@ > // { dg-do compile } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Wno-deprecated -Wno-long-long" } > > -#assert x(x) // { dg-warning "suggest hiding #assert from traditional C with an indented # .-Wtraditional." } > +#assert x(x) // { dg-warning "suggest hiding '#assert' from traditional C with an indented '#' .-Wtraditional." } > > - #define X X // { dg-warning "traditional C ignores #define with the # indented .-Wtraditional." } > + #define X X // { dg-warning "traditional C ignores '#define' with the '#' indented .-Wtraditional." } > > #if 0 > -#elif 1 // { dg-warning "suggest not using #elif in traditional C .-Wtraditional." } > +#elif 1 // { dg-warning "suggest not using '#elif' in traditional C .-Wtraditional." } > #endif > > #define f(X) X > -int f; // { dg-warning "function-like macro \"f\" must be used with arguments in traditional C .-Wtraditional." } > +int f; // { dg-warning "function-like macro 'f' must be used with arguments in traditional C .-Wtraditional." } > > -#if 0U // { dg-warning "traditional C rejects the \"U\" suffix .-Wtraditional." } > +#if 0U // { dg-warning "traditional C rejects the 'U' suffix .-Wtraditional." } > #endif > > #if +1 // { dg-warning " traditional C rejects the unary plus operator .-Wtraditional." } > --- gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c 2024-09-13 09:45:22.464722533 +0200 > @@ -1,18 +1,18 @@ > // { dg-do compile } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=traditional -Wno-deprecated -Wno-long-long" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -#assert x(x) // { dg-error "suggest hiding #assert from traditional C with an indented # .-Werror=traditional." } > +#assert x(x) // { dg-error "suggest hiding '#assert' from traditional C with an indented '#' .-Werror=traditional." } > > - #define X X // { dg-error "traditional C ignores #define with the # indented .-Werror=traditional." } > + #define X X // { dg-error "traditional C ignores '#define' with the '#' indented .-Werror=traditional." } > > #if 0 > -#elif 1 // { dg-error "suggest not using #elif in traditional C .-Werror=traditional." } > +#elif 1 // { dg-error "suggest not using '#elif' in traditional C .-Werror=traditional." } > #endif > > #define f(X) X > -int f; // { dg-error "function-like macro \"f\" must be used with arguments in traditional C .-Werror=traditional." } > +int f; // { dg-error "function-like macro 'f' must be used with arguments in traditional C .-Werror=traditional." } > > -#if 0U // { dg-error "traditional C rejects the \"U\" suffix .-Werror=traditional." } > +#if 0U // { dg-error "traditional C rejects the 'U' suffix .-Werror=traditional." } > #endif > > #if +1 // { dg-error " traditional C rejects the unary plus operator .-Werror=traditional." } > --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c 2024-09-13 09:46:35.401716367 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -trigraphs -Wtrigraphs" } > > -??= // { dg-warning "trigraph \\?\\?= converted to # .-Wtrigraphs." } > +??= // { dg-warning "trigraph '\\?\\?=' converted to '#' .-Wtrigraphs." } > --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-2.c 2024-09-13 09:46:55.318441618 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtrigraphs" } > > -??= // { dg-warning "trigraph \\?\\?= ignored, use -trigraphs to enable .-Wtrigraphs." } > +??= // { dg-warning "trigraph '\\?\\?=' ignored, use '-trigraphs' to enable .-Wtrigraphs." } > --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-3.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-3.c 2024-09-13 09:47:21.814076115 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -trigraphs -Werror=trigraphs" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -??= // { dg-error "trigraph \\?\\?= converted to # .-Werror=trigraphs." } > +??= // { dg-error "trigraph '\\?\\?=' converted to '#' .-Werror=trigraphs." } > --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c 2024-09-13 09:48:12.141381846 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=trigraphs" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -??= // { dg-error "trigraph \\?\\?= ignored, use -trigraphs to enable .-Werror=trigraphs." } > +??= // { dg-error "trigraph '\\?\\?=' ignored, use '-trigraphs' to enable .-Werror=trigraphs." } > --- gcc/testsuite/gcc.dg/cpp/warn-undef.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-undef.c 2024-09-13 09:52:58.330433881 +0200 > @@ -1,5 +1,5 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wundef" } > > -#if x // { dg-warning "\"x\" is not defined, evaluates to 0 .-Wundef." } > +#if x // { dg-warning "'x' is not defined, evaluates to '0' .-Wundef." } > #endif > --- gcc/testsuite/gcc.dg/cpp/warn-undef-2.c.jj 2020-01-14 20:02:47.265602614 +0100 > +++ gcc/testsuite/gcc.dg/cpp/warn-undef-2.c 2024-09-13 09:52:43.430639425 +0200 > @@ -1,5 +1,5 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=undef" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -#if x // { dg-error "\"x\" is not defined, evaluates to 0 .-Werror=undef." } > +#if x // { dg-error "'x' is not defined, evaluates to '0' .-Werror=undef." } > #endif > --- gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c.jj 2023-06-26 09:27:04.364366303 +0200 > +++ gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c 2024-09-13 10:07:35.701306932 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wunused-macros" } > > -#define X X // { dg-warning "9:macro \"X\" is not used .-Wunused-macros." } > +#define X X // { dg-warning "9:macro 'X' is not used .-Wunused-macros." } > --- gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c.jj 2023-06-26 09:27:04.364366303 +0200 > +++ gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c 2024-09-13 10:07:22.584488329 +0200 > @@ -1,4 +1,4 @@ > // { dg-do preprocess } > // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=unused-macros" } > /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ > -#define X X // { dg-error "9:macro \"X\" is not used .-Werror=unused-macros." } > +#define X X // { dg-error "9:macro 'X' is not used .-Werror=unused-macros." } > --- gcc/testsuite/gcc.dg/pch/counter-2.c.jj 2020-01-14 20:02:47.335601565 +0100 > +++ gcc/testsuite/gcc.dg/pch/counter-2.c 2024-09-13 10:21:41.664620418 +0200 > @@ -7,7 +7,7 @@ > #error __COUNTER__ != 0 > #endif > > -#include "counter-2.h" /* { dg-warning "not used because `__COUNTER__' is invalid" } */ > +#include "counter-2.h" /* { dg-warning "not used because '__COUNTER__' is invalid" } */ > /* { dg-error "counter-2.h: No such file or directory" "no such file" { target *-*-* } 0 } */ > /* { dg-error "one or more PCH files were found, but they were invalid" "invalid files" { target *-*-* } .-2 } */ > /* { dg-message "terminated" "" { target *-*-* } 0 } */ > --- gcc/testsuite/g++.dg/cpp0x/udlit-error1.C.jj 2024-06-14 15:18:17.793230368 +0200 > +++ gcc/testsuite/g++.dg/cpp0x/udlit-error1.C 2024-09-13 10:39:27.442909364 +0200 > @@ -3,7 +3,7 @@ > > void operator""_x(const char *, decltype(sizeof(0))); > > -#include ""_x // { dg-error "include expects" } > +#include ""_x // { dg-error "'#include' expects" } > #line ""_x // { dg-error "not a positive integer" } > #if __has_include(""_x) // { dg-error "requires a header-name" } > #endif > --- gcc/testsuite/g++.dg/cpp23/named-universal-char-escape1.C.jj 2022-09-07 22:49:17.683000679 +0200 > +++ gcc/testsuite/g++.dg/cpp23/named-universal-char-escape1.C 2024-09-13 10:25:44.399267858 +0200 > @@ -8,9 +8,9 @@ int b = a\N{}); // { dg-warning "empt > int c = a\N{); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{; treating it as separate tokens" "" { target c++23 } } > int d = a\N); > int e = a\NARG); > -int f = a\N{abc}); // { dg-warning "\\\\N\\\{abc\\\} is not a valid universal character; treating it as separate tokens" "" { target c++23 } } > +int f = a\N{abc}); // { dg-warning "'\\\\N\\\{abc\\\}' is not a valid universal character; treating it as separate tokens" "" { target c++23 } } > int g = a\N{ABC.123}); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{ABC; treating it as separate tokens" "" { target c++23 } } > int h = a\N{NON-EXISTENT CHAR}); // { dg-error "is not a valid universal character" "" { target c++23 } } > // { dg-error "was not declared in this scope" "" { target c++23 } .-1 } > -int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\} is not a valid universal character; treating it as separate tokens" "" { target c++23 } } > - // { dg-message "did you mean \\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}\\?" "" { target c++23 } .-1 } > +int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "'\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\}' is not a valid universal character; treating it as separate tokens" "" { target c++23 } } > + // { dg-message "did you mean '\\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}'\\?" "" { target c++23 } .-1 } > --- gcc/testsuite/g++.dg/cpp23/named-universal-char-escape2.C.jj 2022-09-07 22:49:17.683000679 +0200 > +++ gcc/testsuite/g++.dg/cpp23/named-universal-char-escape2.C 2024-09-13 10:27:43.516623181 +0200 > @@ -9,10 +9,10 @@ int b = a\N{}); // { dg-warning "empt > int c = a\N{); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{; treating it as separate tokens" } > int d = a\N); > int e = a\NARG); > -int f = a\N{abc}); // { dg-warning "\\\\N\\\{abc\\\} is not a valid universal character; treating it as separate tokens" } > +int f = a\N{abc}); // { dg-warning "'\\\\N\\\{abc\\\}' is not a valid universal character; treating it as separate tokens" } > int g = a\N{ABC.123}); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{ABC; treating it as separate tokens" } > int h = a\N{NON-EXISTENT CHAR}); // { dg-error "is not a valid universal character" "" { target c++23 } } > // { dg-error "was not declared in this scope" "" { target c++23 } .-1 } > - // { dg-warning "\\\\N\\\{NON-EXISTENT CHAR\\\} is not a valid universal character; treating it as separate tokens" "" { target c++20_down } .-2 } > -int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\} is not a valid universal character; treating it as separate tokens" } > - // { dg-message "did you mean \\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}\\?" "" { target *-*-* } .-1 } > + // { dg-warning "'\\\\N\\\{NON-EXISTENT CHAR\\\}' is not a valid universal character; treating it as separate tokens" "" { target c++20_down } .-2 } > +int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "'\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\}' is not a valid universal character; treating it as separate tokens" } > + // { dg-message "did you mean '\\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}'\\?" "" { target *-*-* } .-1 } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C 2024-09-13 10:29:10.065428846 +0200 > @@ -4,40 +4,40 @@ > // { dg-options "-finput-charset=UTF-8" } > > // a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } > -// a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -// a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -// a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -// a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -// a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -// a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -// a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -// a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -// a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -// a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > -// { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +// a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +// a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +// a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +// a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +// a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +// a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +// a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +// a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +// a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +// a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > +// { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > /* a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } */ > -/* a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } */ > -/* a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */ > -/* a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } */ > -/* a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } */ > -/* a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } */ > -/* a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } */ > -/* a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */ > -/* a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } */ > -/* a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } */ > -/* a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } */ > -/* { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } */ > +/* a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } */ > +/* a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */ > +/* a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } */ > +/* a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } */ > +/* a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } */ > +/* a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } */ > +/* a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } */ > +/* { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } */ > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-2.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-2.C 2024-09-13 10:29:24.335231933 +0200 > @@ -4,40 +4,40 @@ > // { dg-options "-finput-charset=UTF-8 -pedantic" } > > // a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } > -// a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -// a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -// a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -// a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -// a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -// a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -// a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -// a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -// a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -// a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -// a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > -// { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +// a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +// a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +// a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +// a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +// a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +// a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +// a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +// a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +// a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +// a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +// a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > +// { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > /* a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } */ > -/* a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } */ > -/* a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } */ > -/* a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */ > -/* a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } */ > -/* a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } */ > -/* a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } */ > -/* a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } */ > -/* a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */ > -/* a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } */ > -/* a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } */ > -/* a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } */ > -/* { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } */ > +/* a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } */ > +/* a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } */ > +/* a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */ > +/* a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } */ > +/* a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } */ > +/* a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } */ > +/* a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } */ > +/* a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } */ > +/* a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } */ > +/* { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } */ > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-3.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-3.C 2024-09-13 10:29:41.583993908 +0200 > @@ -4,40 +4,40 @@ > // { dg-options "-finput-charset=UTF-8 -pedantic-errors" } > > // a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } > -// a�a { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } > -// a�a { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } > -// a���a { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -// a���a { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -// a��a { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -// a��a { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -// a���a { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -// a����a { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -// a����a { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -// a����a { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -// a������a { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > -// { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +// a�a { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +// a�a { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +// a���a { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +// a���a { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +// a��a { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +// a��a { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +// a���a { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +// a����a { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +// a����a { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +// a����a { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +// a������a { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > +// { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > /* a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } */ > -/* a�a { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } */ > -/* a�a { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } */ > -/* a���a { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */ > -/* a���a { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } */ > -/* a��a { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } */ > -/* a��a { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } */ > -/* a���a { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } */ > -/* a����a { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */ > -/* a����a { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } */ > -/* a����a { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } */ > -/* a������a { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } */ > -/* { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } */ > +/* a�a { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } */ > +/* a�a { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } */ > +/* a���a { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */ > +/* a���a { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } */ > +/* a��a { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } */ > +/* a��a { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } */ > +/* a���a { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } */ > +/* a����a { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */ > +/* a����a { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } */ > +/* a����a { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } */ > +/* a������a { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } */ > +/* { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } */ > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-4.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-4.C 2024-09-13 10:29:57.796770184 +0200 > @@ -4,40 +4,40 @@ > // { dg-options "-finput-charset=UTF-8 -pedantic-errors -Wno-invalid-utf8" } > > // a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } > -// a�a { dg-bogus "invalid UTF-8 character <80>" } > -// a�a { dg-bogus "invalid UTF-8 character <bf>" } > -// a�a { dg-bogus "invalid UTF-8 character <c0>" } > -// a�a { dg-bogus "invalid UTF-8 character <c1>" } > -// a�a { dg-bogus "invalid UTF-8 character <f5>" } > -// a�a { dg-bogus "invalid UTF-8 character <ff>" } > -// a�a { dg-bogus "invalid UTF-8 character <c2>" } > -// a�a { dg-bogus "invalid UTF-8 character <e0>" } > -// a���a { dg-bogus "invalid UTF-8 character <e0><80><bf>" } > -// a���a { dg-bogus "invalid UTF-8 character <e0><9f><80>" } > -// a��a { dg-bogus "invalid UTF-8 character <e0><bf>" } > -// a��a { dg-bogus "invalid UTF-8 character <ec><80>" } > -// a���a { dg-bogus "invalid UTF-8 character <ed><a0><80>" } > -// a����a { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } > -// a����a { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" } > -// a����a { dg-bogus "invalid UTF-8 character <f4><90><80><80>" } > -// a������a { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" } > -// { dg-bogus "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } > +// a�a { dg-bogus "invalid UTF-8 character '<80>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<bf>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<c0>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<c1>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<f5>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<ff>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<c2>'" } > +// a�a { dg-bogus "invalid UTF-8 character '<e0>'" } > +// a���a { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } > +// a���a { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } > +// a��a { dg-bogus "invalid UTF-8 character '<e0><bf>'" } > +// a��a { dg-bogus "invalid UTF-8 character '<ec><80>'" } > +// a���a { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } > +// a����a { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } > +// a����a { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" } > +// a����a { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" } > +// a������a { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" } > +// { dg-bogus "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } > /* a?߿ࠀ𐀀?a { dg-bogus "invalid UTF-8 character" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <80>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <bf>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <c0>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <c1>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <f5>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <ff>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <c2>" } */ > -/* a�a { dg-bogus "invalid UTF-8 character <e0>" } */ > -/* a���a { dg-bogus "invalid UTF-8 character <e0><80><bf>" } */ > -/* a���a { dg-bogus "invalid UTF-8 character <e0><9f><80>" } */ > -/* a��a { dg-bogus "invalid UTF-8 character <e0><bf>" } */ > -/* a��a { dg-bogus "invalid UTF-8 character <ec><80>" } */ > -/* a���a { dg-bogus "invalid UTF-8 character <ed><a0><80>" } */ > -/* a����a { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } */ > -/* a����a { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" } */ > -/* a����a { dg-bogus "invalid UTF-8 character <f4><90><80><80>" } */ > -/* a������a { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" } */ > -/* { dg-bogus "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<80>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<bf>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<c0>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<c1>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<f5>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<ff>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<c2>'" } */ > +/* a�a { dg-bogus "invalid UTF-8 character '<e0>'" } */ > +/* a���a { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } */ > +/* a���a { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } */ > +/* a��a { dg-bogus "invalid UTF-8 character '<e0><bf>'" } */ > +/* a��a { dg-bogus "invalid UTF-8 character '<ec><80>'" } */ > +/* a���a { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } */ > +/* a����a { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } */ > +/* a����a { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" } */ > +/* a����a { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" } */ > +/* a������a { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" } */ > +/* { dg-bogus "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } */ > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-5.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-5.C 2024-09-13 10:30:15.259529205 +0200 > @@ -3,78 +3,78 @@ > // { dg-do preprocess { target c++11 } } > // { dg-options "-finput-charset=UTF-8" } > > -char32_t a = U'�'; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -char32_t b = U'�'; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -char32_t c = U'�'; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -char32_t d = U'�'; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -char32_t e = U'�'; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -char32_t f = U'�'; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -char32_t g = U'�'; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -char32_t h = U'�'; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -char32_t i = U'���'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -char32_t j = U'���'; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -char32_t k = U'��'; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -char32_t l = U'��'; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -char32_t m = U'���'; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -char32_t n = U'����'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -char32_t o = U'����'; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -char32_t p = U'����'; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -char32_t q = U'������'; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +char32_t a = U'�'; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +char32_t b = U'�'; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +char32_t c = U'�'; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +char32_t d = U'�'; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +char32_t e = U'�'; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +char32_t f = U'�'; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +char32_t g = U'�'; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +char32_t h = U'�'; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +char32_t i = U'���'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +char32_t j = U'���'; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +char32_t k = U'��'; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +char32_t l = U'��'; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +char32_t m = U'���'; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +char32_t n = U'����'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +char32_t o = U'����'; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +char32_t p = U'����'; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +char32_t q = U'������'; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A = U"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B = U"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C = U"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D = U"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E = U"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F = U"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G = U"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H = U"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I = U"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J = U"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K = U"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L = U"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M = U"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N = U"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O = U"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P = U"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q = U"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R = U"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B = U"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C = U"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D = U"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E = U"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F = U"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G = U"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H = U"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I = U"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J = U"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K = U"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L = U"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M = U"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N = U"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O = U"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P = U"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q = U"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R = U"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A1 = UR"(?߿ࠀ𐀀?)"; // { dg-bogus "invalid UTF-8 character" } > -auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A2 = u8"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-6.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-6.C 2024-09-13 10:30:31.747301679 +0200 > @@ -3,78 +3,78 @@ > // { dg-do preprocess { target c++11 } } > // { dg-options "-finput-charset=UTF-8 -pedantic" } > > -char32_t a = U'�'; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -char32_t b = U'�'; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -char32_t c = U'�'; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -char32_t d = U'?'; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -char32_t e = U'�'; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -char32_t f = U'�'; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -char32_t g = U'�'; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -char32_t h = U'�'; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -char32_t i = U'���'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -char32_t j = U'���'; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -char32_t k = U'��'; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -char32_t l = U'��'; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -char32_t m = U'���'; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -char32_t n = U'����'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -char32_t o = U'����'; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -char32_t p = U'����'; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -char32_t q = U'������'; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +char32_t a = U'�'; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +char32_t b = U'�'; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +char32_t c = U'�'; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +char32_t d = U'�'; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +char32_t e = U'�'; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +char32_t f = U'�'; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +char32_t g = U'�'; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +char32_t h = U'�'; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +char32_t i = U'���'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +char32_t j = U'���'; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +char32_t k = U'��'; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +char32_t l = U'��'; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +char32_t m = U'���'; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +char32_t n = U'����'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +char32_t o = U'����'; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +char32_t p = U'����'; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +char32_t q = U'������'; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A = U"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B = U"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C = U"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D = U"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E = U"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F = U"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G = U"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H = U"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I = U"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J = U"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K = U"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L = U"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M = U"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N = U"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O = U"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P = U"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q = U"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R = U"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B = U"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C = U"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D = U"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E = U"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F = U"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G = U"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H = U"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I = U"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J = U"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K = U"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L = U"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M = U"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N = U"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O = U"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P = U"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q = U"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R = U"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A1 = UR"(?߿ࠀ𐀀?)"; // { dg-bogus "invalid UTF-8 character" } > -auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A2 = u8"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-7.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-7.C 2024-09-13 10:30:46.597096759 +0200 > @@ -3,78 +3,78 @@ > // { dg-do preprocess { target c++11 } } > // { dg-options "-finput-charset=UTF-8 -pedantic-errors" } > > -char32_t a = U'�'; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } > -char32_t b = U'�'; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } > -char32_t c = U'�'; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } > -char32_t d = U'�'; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } > -char32_t e = U'�'; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } > -char32_t f = U'�'; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } > -char32_t g = U'�'; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } > -char32_t h = U'�'; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } > -char32_t i = U'���'; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -char32_t j = U'���'; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -char32_t k = U'��'; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -char32_t l = U'��'; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -char32_t m = U'�??'; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -char32_t n = U'����'; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -char32_t o = U'����'; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -char32_t p = U'����'; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -char32_t q = U'������'; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +char32_t a = U'�'; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } > +char32_t b = U'�'; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +char32_t c = U'�'; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +char32_t d = U'�'; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +char32_t e = U'�'; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +char32_t f = U'�'; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +char32_t g = U'�'; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +char32_t h = U'�'; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +char32_t i = U'���'; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +char32_t j = U'���'; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +char32_t k = U'�?'; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +char32_t l = U'��'; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +char32_t m = U'���'; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +char32_t n = U'����'; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +char32_t o = U'����'; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +char32_t p = U'����'; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +char32_t q = U'������'; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A = U"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B = U"�"; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C = U"�"; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D = U"�"; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E = U"�"; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F = U"�"; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G = U"�"; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H = U"�"; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I = U"�"; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J = U"���"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K = U"���"; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L = U"��"; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M = U"��"; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N = U"���"; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O = U"����"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P = U"����"; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q = U"����"; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R = U"������"; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B = U"�"; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C = U"�"; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D = U"�"; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E = U"�"; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F = U"�"; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G = U"�"; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H = U"�"; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I = U"�"; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J = U"���"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K = U"���"; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L = U"��"; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M = U"��"; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N = U"���"; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O = U"����"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P = U"����"; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q = U"����"; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R = U"������"; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A1 = UR"(?߿ࠀ𐀀?)"; // { dg-bogus "invalid UTF-8 character" } > -auto B1 = UR"(�)"; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C1 = UR"(�)"; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D1 = UR"(�)"; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E1 = UR"(�)"; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F1 = UR"(�)"; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G1 = UR"(�)"; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H1 = UR"(�)"; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I1 = UR"(�)"; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J1 = UR"(���)"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K1 = UR"(���)"; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L1 = UR"(��)"; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M1 = UR"(��)"; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N1 = UR"(���)"; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O1 = UR"(����)"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P1 = UR"(����)"; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q1 = UR"(����)"; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R1 = UR"(������)"; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J1 = UR"(���)"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K1 = UR"(���)"; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L1 = UR"(��)"; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M1 = UR"(��)"; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N1 = UR"(���)"; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O1 = UR"(����)"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P1 = UR"(����)"; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q1 = UR"(����)"; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R1 = UR"(������)"; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A2 = u8"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B2 = u8"�"; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C2 = u8"�"; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D2 = u8"�"; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E2 = u8"�"; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F2 = u8"�"; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G2 = u8"�"; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H2 = u8"�"; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I2 = u8"�"; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J2 = u8"���"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K2 = u8"���"; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L2 = u8"��"; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M2 = u8"��"; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N2 = u8"���"; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O2 = u8"����"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P2 = u8"����"; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q2 = u8"����"; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R2 = u8"������"; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B2 = u8"�"; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C2 = u8"�"; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D2 = u8"�"; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E2 = u8"�"; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F2 = u8"�"; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G2 = u8"�"; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H2 = u8"�"; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I2 = u8"�"; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J2 = u8"���"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K2 = u8"���"; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L2 = u8"��"; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M2 = u8"��"; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N2 = u8"���"; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O2 = u8"����"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P2 = u8"����"; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q2 = u8"����"; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R2 = u8"������"; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-8.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-8.C 2024-09-13 10:31:04.698846968 +0200 > @@ -3,78 +3,78 @@ > // { dg-do preprocess { target c++11 } } > // { dg-options "-finput-charset=UTF-8 -pedantic-errors -Wno-invalid-utf8" } > > -char32_t a = U'�'; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } > -char32_t b = U'�'; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } > -char32_t c = U'�'; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } > -char32_t d = U'�'; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } > -char32_t e = U'�'; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } > -char32_t f = U'�'; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } > -char32_t g = U'�'; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } > -char32_t h = U'�'; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } > -char32_t i = U'���'; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -char32_t j = U'���'; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -char32_t k = U'��'; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -char32_t l = U'��'; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -char32_t m = U'���'; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -char32_t n = U'����'; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -char32_t o = U'����'; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -char32_t p = U'����'; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -char32_t q = U'������'; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +char32_t a = U'�'; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } > +char32_t b = U'�'; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +char32_t c = U'�'; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +char32_t d = U'�'; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +char32_t e = U'�'; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +char32_t f = U'�'; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +char32_t g = U'�'; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +char32_t h = U'�'; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +char32_t i = U'���'; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +char32_t j = U'���'; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +char32_t k = U'��'; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +char32_t l = U'��'; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +char32_t m = U'���'; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +char32_t n = U'����'; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +char32_t o = U'����'; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +char32_t p = U'����'; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +char32_t q = U'������'; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A = U"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B = U"�"; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C = U"�"; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D = U"�"; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E = U"�"; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F = U"�"; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G = U"�"; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H = U"�"; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I = U"�"; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J = U"���"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K = U"���"; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L = U"��"; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M = U"��"; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N = U"���"; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O = U"����"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P = U"����"; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q = U"����"; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R = U"������"; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B = U"�"; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C = U"�"; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D = U"�"; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E = U"�"; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F = U"�"; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G = U"�"; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H = U"�"; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I = U"�"; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J = U"���"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K = U"���"; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L = U"��"; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M = U"��"; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N = U"���"; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O = U"����"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P = U"����"; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q = U"����"; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R = U"������"; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A1 = UR"(?߿ࠀ𐀀?)"; // { dg-bogus "invalid UTF-8 character" } > -auto B1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R1 = UR"(������)"; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R1 = UR"(������)"; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > auto A2 = u8"?߿ࠀ𐀀?"; // { dg-bogus "invalid UTF-8 character" } > -auto B2 = u8"�"; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } > -auto C2 = u8"�"; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } > -auto D2 = u8"�"; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } > -auto E2 = u8"�"; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } > -auto F2 = u8"�"; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } > -auto G2 = u8"�"; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } > -auto H2 = u8"�"; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } > -auto I2 = u8"�"; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } > -auto J2 = u8"���"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -auto K2 = u8"���"; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -auto L2 = u8"��"; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -auto M2 = u8"��"; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -auto N2 = u8"���"; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -auto O2 = u8"����"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -auto P2 = u8"����"; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > -auto Q2 = u8"����"; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } > -auto R2 = u8"������"; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } > - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } > +auto B2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } > +auto C2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +auto D2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +auto E2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +auto F2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +auto G2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +auto H2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +auto I2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +auto J2 = u8"���"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +auto K2 = u8"���"; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +auto L2 = u8"��"; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +auto M2 = u8"��"; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +auto N2 = u8"���"; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +auto O2 = u8"����"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +auto P2 = u8"����"; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > +auto Q2 = u8"����"; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } > +auto R2 = u8"������"; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } > + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-9.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-9.C 2024-09-13 10:31:20.573627902 +0200 > @@ -6,20 +6,20 @@ > #define I(x) > I(?߿ࠀ𐀀?) // { dg-bogus "invalid UTF-8 character" } > // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } > -I(�) // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -I(���) // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -I(���) // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -I(��) // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -I(��) // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -I(���) // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -I(����) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -I(����) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +I(���) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +I(���) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +I(��) // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +I(��) // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +I(���) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +I(����) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +I(����) // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > I(����) // { dg-error "is not valid in an identifier" } > I(������) // { dg-error "is not valid in an identifier" } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C 2024-09-13 10:31:41.081344907 +0200 > @@ -6,20 +6,20 @@ > #define I(x) > I(?߿ࠀ𐀀?) // { dg-bogus "invalid UTF-8 character" } > // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } > -I(�) // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } > -I(?) // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } > -I(�) // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } > -I(���) // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -I(���) // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -I(��) // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -I(��) // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -I(���) // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -I(����) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -I(����) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +I(�) // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +I(���) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +I(���) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +I(��) // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +I(��) // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +I(���) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +I(����) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +I(����) // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > I(����) // { dg-error "is not valid in an identifier" } > I(������) // { dg-error "is not valid in an identifier" } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C 2024-09-13 10:31:55.809141675 +0200 > @@ -6,20 +6,20 @@ > #define I(x) > I(?߿ࠀ𐀀?) // { dg-bogus "invalid UTF-8 character" } > // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } > -I(�) // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } > -I(�) // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } > -I(���) // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } > -I(���) // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } > -I(��) // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } > -I(��) // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } > -I(���) // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } > -I(����) // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } > -I(����) // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } > +I(�) // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } > +I(���) // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } > +I(���) // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } > +I(��) // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } > +I(��) // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } > +I(���) // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } > +I(����) // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } > +I(����) // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } > I(����) // { dg-error "is not valid in an identifier" } > I(������) // { dg-error "is not valid in an identifier" } > --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-12.C.jj 2022-09-02 23:05:41.240223960 +0200 > +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-12.C 2024-09-13 10:32:13.942891436 +0200 > @@ -6,20 +6,20 @@ > #define I(x) > I(?߿ࠀ𐀀?) // { dg-bogus "invalid UTF-8 character" } > // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } > -I(�) // { dg-bogus "invalid UTF-8 character <80>" } > -I(�) // { dg-bogus "invalid UTF-8 character <bf>" } > -I(�) // { dg-bogus "invalid UTF-8 character <c0>" } > -I(�) // { dg-bogus "invalid UTF-8 character <c1>" } > -I(�) // { dg-bogus "invalid UTF-8 character <f5>" } > -I(�) // { dg-bogus "invalid UTF-8 character <ff>" } > -I(�) // { dg-bogus "invalid UTF-8 character <c2>" } > -I(�) // { dg-bogus "invalid UTF-8 character <e0>" } > -I(���) // { dg-bogus "invalid UTF-8 character <e0><80><bf>" } > -I(���) // { dg-bogus "invalid UTF-8 character <e0><9f><80>" } > -I(��) // { dg-bogus "invalid UTF-8 character <e0><bf>" } > -I(��) // { dg-bogus "invalid UTF-8 character <ec><80>" } > -I(���) // { dg-bogus "invalid UTF-8 character <ed><a0><80>" } > -I(����) // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } > -I(����) // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" } > +I(�) // { dg-bogus "invalid UTF-8 character '<80>" } > +I(�) // { dg-bogus "invalid UTF-8 character '<bf>'" } > +I(�) // { dg-bogus "invalid UTF-8 character '<c0>'" } > +I(�) // { dg-bogus "invalid UTF-8 character '<c1>'" } > +I(�) // { dg-bogus "invalid UTF-8 character '<f5>'" } > +I(�) // { dg-bogus "invalid UTF-8 character '<ff>'" } > +I(�) // { dg-bogus "invalid UTF-8 character '<c2>'" } > +I(�) // { dg-bogus "invalid UTF-8 character '<e0>'" } > +I(���) // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } > +I(���) // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } > +I(��) // { dg-bogus "invalid UTF-8 character '<e0><bf>'" } > +I(��) // { dg-bogus "invalid UTF-8 character '<ec><80>'" } > +I(���) // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } > +I(����) // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } > +I(����) // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" } > I(����) // { dg-error "is not valid in an identifier" } > I(������) // { dg-error "is not valid in an identifier" } > --- gcc/testsuite/g++.dg/cpp/elifdef-3.C.jj 2021-10-07 23:03:44.116934656 +0200 > +++ gcc/testsuite/g++.dg/cpp/elifdef-3.C 2024-09-13 10:34:16.755196685 +0200 > @@ -4,53 +4,53 @@ > #define A > #undef B > > -#elifdef A // { dg-error "#elifdef without #if" } > -#elifdef B // { dg-error "#elifdef without #if" } > -#elifndef A // { dg-error "#elifndef without #if" } > -#elifndef B // { dg-error "#elifndef without #if" } > +#elifdef A // { dg-error "'#elifdef' without '#if'" } > +#elifdef B // { dg-error "'#elifdef' without '#if'" } > +#elifndef A // { dg-error "'#elifndef' without '#if'" } > +#elifndef B // { dg-error "'#elifndef' without '#if'" } > > #if 1 // { dg-error "-:began here" } > #else > -#elifdef A // { dg-error "#elifdef after #else" } > +#elifdef A // { dg-error "'#elifdef' after '#else'" } > #endif > > #if 1 // { dg-error "-:began here" } > #else > -#elifdef B // { dg-error "#elifdef after #else" } > +#elifdef B // { dg-error "'#elifdef' after '#else'" } > #endif > > #if 1 // { dg-error "-:began here" } > #else > -#elifndef A // { dg-error "#elifndef after #else" } > +#elifndef A // { dg-error "'#elifndef' after '#else'" } > #endif > > #if 1 // { dg-error "-:began here" } > #else > -#elifndef B // { dg-error "#elifndef after #else" } > +#elifndef B // { dg-error "'#elifndef' after '#else'" } > #endif > > #if 0 > -#elifdef A = // { dg-error "extra tokens at end of #elifdef directive" } > +#elifdef A = // { dg-error "extra tokens at end of '#elifdef' directive" } > #endif > > #if 0 > -#elifdef B = // { dg-error "extra tokens at end of #elifdef directive" } > +#elifdef B = // { dg-error "extra tokens at end of '#elifdef' directive" } > #endif > > #if 0 > -#elifndef A = // { dg-error "extra tokens at end of #elifndef directive" } > +#elifndef A = // { dg-error "extra tokens at end of '#elifndef' directive" } > #endif > > #if 0 > -#elifndef B = // { dg-error "extra tokens at end of #elifndef directive" } > +#elifndef B = // { dg-error "extra tokens at end of '#elifndef' directive" } > #endif > > #if 0 > -#elifdef // { dg-error "no macro name given in #elifdef directive" } > +#elifdef // { dg-error "no macro name given in '#elifdef' directive" } > #endif > > #if 0 > -#elifndef // { dg-error "no macro name given in #elifndef directive" } > +#elifndef // { dg-error "no macro name given in '#elifndef' directive" } > #endif > > #if 0 > --- gcc/testsuite/g++.dg/cpp/elifdef-5.C.jj 2021-10-07 23:03:44.116934656 +0200 > +++ gcc/testsuite/g++.dg/cpp/elifdef-5.C 2024-09-13 10:35:35.074115927 +0200 > @@ -5,53 +5,53 @@ > #define A > #undef B > > -#elifdef A // { dg-error "#elifdef without #if" } > -#elifdef B // { dg-error "#elifdef without #if" } > -#elifndef A // { dg-error "#elifndef without #if" } > -#elifndef B // { dg-error "#elifndef without #if" } > +#elifdef A // { dg-error "'#elifdef' without '#if'" } > +#elifdef B // { dg-error "'#elifdef' without '#if'" } > +#elifndef A // { dg-error "'#elifndef' without '#if'" } > +#elifndef B // { dg-error "'#elifndef' without '#if'" } > > #if 1 // { dg-error "-:began here" } > #else > -#elifdef A // { dg-error "#elifdef after #else" } > +#elifdef A // { dg-error "'#elifdef' after '#else'" } > #endif > > #if 1 // { dg-error "-:began here" } > #else > -#elifdef B // { dg-error "#elifdef after #else" } > +#elifdef B // { dg-error "'#elifdef' after '#else'" } > #endif > > #if 1 // { dg-error "-:began here" } > #else > -#elifndef A // { dg-error "#elifndef after #else" } > +#elifndef A // { dg-error "'#elifndef' after '#else'" } > #endif > > #if 1 // { dg-error "-:began here" } > #else > -#elifndef B // { dg-error "#elifndef after #else" } > +#elifndef B // { dg-error "'#elifndef' after '#else'" } > #endif > > #if 0 > -#elifdef A = // { dg-warning "extra tokens at end of #elifdef directive" } > +#elifdef A = // { dg-warning "extra tokens at end of '#elifdef' directive" } > #endif > > #if 0 > -#elifdef B = // { dg-warning "extra tokens at end of #elifdef directive" } > +#elifdef B = // { dg-warning "extra tokens at end of '#elifdef' directive" } > #endif > > #if 0 > -#elifndef A = // { dg-warning "extra tokens at end of #elifndef directive" } > +#elifndef A = // { dg-warning "extra tokens at end of '#elifndef' directive" } > #endif > > #if 0 > -#elifndef B = // { dg-warning "extra tokens at end of #elifndef directive" } > +#elifndef B = // { dg-warning "extra tokens at end of '#elifndef' directive" } > #endif > > #if 0 > -#elifdef // { dg-error "no macro name given in #elifdef directive" } > +#elifdef // { dg-error "no macro name given in '#elifdef' directive" } > #endif > > #if 0 > -#elifndef // { dg-error "no macro name given in #elifndef directive" } > +#elifndef // { dg-error "no macro name given in '#elifndef' directive" } > #endif > > #if 0 > --- gcc/testsuite/g++.dg/cpp/elifdef-6.C.jj 2021-10-07 23:03:44.116934656 +0200 > +++ gcc/testsuite/g++.dg/cpp/elifdef-6.C 2024-09-13 10:36:34.664293616 +0200 > @@ -6,7 +6,7 @@ > #undef B > > #if 0 > -#elifdef A // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef A // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #define M1 1 > #endif > > @@ -25,7 +25,7 @@ > #endif > > #if 0 > -#elifndef B // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef B // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #define M2 2 > #endif > > @@ -34,32 +34,32 @@ > #endif > > #if 0 > -#elifdef A // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef A // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #else > #error "#elifdef A did not apply" > #endif > > #if 0 > -#elifndef B // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef B // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #else > #error "#elifndef B did not apply" > #endif > > #if 1 > -#elifdef A // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef A // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > > #if 1 > -#elifndef B // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef B // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > > // As with #elif, the syntax of the new directives is relaxed after a > non-skipped group. > > #if 1 > -#elifdef x * y // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef x * y // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > > #if 1 > -#elifndef ! // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef ! // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > --- gcc/testsuite/g++.dg/cpp/elifdef-7.C.jj 2021-10-07 23:03:44.116934656 +0200 > +++ gcc/testsuite/g++.dg/cpp/elifdef-7.C 2024-09-13 10:23:22.291230601 +0200 > @@ -6,7 +6,7 @@ > #undef B > > #if 0 > -#elifdef A // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef A // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #define M1 1 > #endif > > @@ -25,7 +25,7 @@ > #endif > > #if 0 > -#elifndef B // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef B // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #define M2 2 > #endif > > @@ -34,32 +34,32 @@ > #endif > > #if 0 > -#elifdef A // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef A // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #else > #error "#elifdef A did not apply" > #endif > > #if 0 > -#elifndef B // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef B // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #else > #error "#elifndef B did not apply" > #endif > > #if 1 > -#elifdef A // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef A // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > > #if 1 > -#elifndef B // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef B // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > > // As with #elif, the syntax of the new directives is relaxed after a > non-skipped group. > > #if 1 > -#elifdef x * y // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifdef x * y // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > > #if 1 > -#elifndef ! // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > +#elifndef ! // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } > #endif > --- gcc/testsuite/g++.dg/cpp/embed-1.C.jj 2024-09-12 23:12:54.031424116 +0200 > +++ gcc/testsuite/g++.dg/cpp/embed-1.C 2024-09-13 10:24:00.101708382 +0200 > @@ -6,9 +6,9 @@ > #endif > > int a = > -#embed __FILE__ limit (1) // { dg-error "#embed is a GCC extension" } > +#embed __FILE__ limit (1) // { dg-error "'#embed' is a GCC extension" } > ; > int b = > (__extension__ > -#embed __FILE__ limit (1) // { dg-error "#embed is a GCC extension" } > +#embed __FILE__ limit (1) // { dg-error "'#embed' is a GCC extension" } > ); > --- gcc/testsuite/g++.dg/cpp/embed-2.C.jj 2024-09-12 23:12:54.031424116 +0200 > +++ gcc/testsuite/g++.dg/cpp/embed-2.C 2024-09-13 10:24:24.383373016 +0200 > @@ -6,9 +6,9 @@ > #endif > > int a = > -#embed __FILE__ limit (1) // { dg-warning "#embed is a GCC extension" } > +#embed __FILE__ limit (1) // { dg-warning "'#embed' is a GCC extension" } > ; > int b = > (__extension__ > -#embed __FILE__ limit (1) // { dg-warning "#embed is a GCC extension" } > +#embed __FILE__ limit (1) // { dg-warning "'#embed' is a GCC extension" } > ); > --- gcc/testsuite/g++.dg/cpp/pedantic-errors.C.jj 2020-01-14 20:02:46.701611062 +0100 > +++ gcc/testsuite/g++.dg/cpp/pedantic-errors.C 2024-09-13 10:53:57.298943459 +0200 > @@ -2,4 +2,4 @@ > /* { dg-options "-std=c++98 -pedantic-errors" } */ > > #if 1 > -#endif 1 /* { dg-error "extra tokens at end of #endif directive" } */ > +#endif 1 /* { dg-error "extra tokens at end of '#endif' directive" } */ > --- gcc/testsuite/g++.dg/cpp/warning-1.C.jj 2022-08-25 20:34:49.333893224 +0200 > +++ gcc/testsuite/g++.dg/cpp/warning-1.C 2024-09-13 10:37:37.761422912 +0200 > @@ -3,4 +3,4 @@ > // { dg-options "-pedantic-errors" } > > #warning example text /* { dg-warning "example text" } */ > -// { dg-error "#warning before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } > +// { dg-error "'#warning' before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } > --- gcc/testsuite/g++.dg/cpp/warning-2.C.jj 2022-08-25 20:34:49.333893224 +0200 > +++ gcc/testsuite/g++.dg/cpp/warning-2.C 2024-09-13 10:37:57.462151052 +0200 > @@ -3,4 +3,4 @@ > // { dg-options "-pedantic" } > > #warning example text /* { dg-warning "example text" } */ > -// { dg-warning "#warning before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } > +// { dg-warning "'#warning' before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } > --- gcc/testsuite/g++.dg/ext/bitint1.C.jj 2023-09-08 11:29:20.119767813 +0200 > +++ gcc/testsuite/g++.dg/ext/bitint1.C 2024-09-13 11:37:09.095581218 +0200 > @@ -3,7 +3,7 @@ > > _BitInt(63) a; // { dg-error "expected" } > unsigned _BitInt(31) b; // { dg-error "expected" } > -int c = 21wb; // { dg-error "invalid suffix \"wb\" on integer constant" "" { target c++98_only } } > +int c = 21wb; // { dg-error "invalid suffix 'wb' on integer constant" "" { target c++98_only } } > // { dg-error "unable to find numeric literal operator 'operator\"\"wb'" "" { target c++11 } .-1 } > -long long d = 60594869054uwb; // { dg-error "invalid suffix \"uwb\" on integer constant" "" { target c++98_only } } > +long long d = 60594869054uwb; // { dg-error "invalid suffix 'uwb' on integer constant" "" { target c++98_only } } > // { dg-error "unable to find numeric literal operator 'operator\"\"uwb'" "" { target c++11 } .-1 } > --- gcc/testsuite/g++.dg/ext/bitint2.C.jj 2023-09-08 11:29:20.119767813 +0200 > +++ gcc/testsuite/g++.dg/ext/bitint2.C 2024-09-13 11:37:40.370171647 +0200 > @@ -4,7 +4,7 @@ > > _BitInt(63) a; // { dg-error "expected" } > unsigned _BitInt(31) b; // { dg-error "expected" } > -int c = 21wb; // { dg-error "invalid suffix \"wb\" on integer constant" "" { target c++98_only } } > +int c = 21wb; // { dg-error "invalid suffix 'wb' on integer constant" "" { target c++98_only } } > // { dg-error "unable to find numeric literal operator 'operator\"\"wb'" "" { target c++11 } .-1 } > -long long d = 60594869054uwb; // { dg-error "invalid suffix \"uwb\" on integer constant" "" { target c++98_only } } > +long long d = 60594869054uwb; // { dg-error "invalid suffix 'uwb' on integer constant" "" { target c++98_only } } > // { dg-error "unable to find numeric literal operator 'operator\"\"uwb'" "" { target c++11 } .-1 } > > Jakub > >
On Fri, Sep 13, 2024 at 01:19:02PM +0200, Richard Biener wrote: > The genmatch.cc parts are OK - I wonder how much the new dependences > push gimple-match* and generic-match* compilation to the end? Only time will tell. Looking at my past 3 x86_64-linux bootstraps (-j32) but I'm doing i686-linux bootstrap concurrently (also -j32) - 2 without the patch, one with it, the g*-match*.cc files were generated always in the same minute as config.state and in the 2 older bootstraps first g*-match*.o was finished ~4 minutes after config.state and last ~6 minutes after it, while in the latest bootstrap first g*-match*.o was ready ~1 minute after config.state and last ~4 minutes after it. Toplevel config.status to make -j32 bootstrap time was 86minutes in the unpatched build, 76minutes in patched, but this really varies quite a lot. Basically, the old dependencies forced all non-generated files to wait until all generated files were generated, the new dependencies force all non-generated *.o files to wait until all but g*match* generated files were generated and all non-generated *.o files but libcommon.a to wait until all g*match* generated files were generated. So, one pretty much needs to generate the non-g*match* first, then compile libcommon.a (36 small objects), then generate g*match* and then compile the rest. So, perhaps on > 36 slow CPUs in theory it might be slightly slower, because there will be another time frame where those further CPUs are idle. Jakub
--- libcpp/include/cpplib.h.jj 2024-09-12 23:12:54.044423930 +0200 +++ libcpp/include/cpplib.h 2024-09-12 23:13:32.245876199 +0200 @@ -649,6 +649,13 @@ struct cpp_options cpp_main_search main_search : 8; }; +#if GCC_VERSION >= 3005 +#define ATTRIBUTE_CPP_PPDIAG(m, n) \ + __attribute__ ((__format__ (__gcc_diag__, m , n))) ATTRIBUTE_NONNULL(m) +#else +#define ATTRIBUTE_CPP_PPDIAG(m, n) ATTRIBUTE_NONNULL(m) +#endif + /* Diagnostic levels. To get a diagnostic without associating a position in the translation unit with it, use cpp_error_with_line with a line number of zero. */ @@ -754,7 +761,7 @@ struct cpp_callbacks enum cpp_warning_reason, rich_location *, const char *, va_list *) - ATTRIBUTE_FPTR_PRINTF(5,0); + ATTRIBUTE_CPP_PPDIAG (5,0); /* Callbacks for when a macro is expanded, or tested (whether defined or not at the time) in #ifdef, #ifndef or "defined". */ @@ -1351,24 +1359,24 @@ cpp_num cpp_num_sign_extend (cpp_num, si /* Output a diagnostic of some kind. */ extern bool cpp_error (cpp_reader *, enum cpp_diagnostic_level, const char *msgid, ...) - ATTRIBUTE_PRINTF_3; + ATTRIBUTE_CPP_PPDIAG (3, 4); extern bool cpp_warning (cpp_reader *, enum cpp_warning_reason, const char *msgid, ...) - ATTRIBUTE_PRINTF_3; + ATTRIBUTE_CPP_PPDIAG (3, 4); extern bool cpp_pedwarning (cpp_reader *, enum cpp_warning_reason, const char *msgid, ...) - ATTRIBUTE_PRINTF_3; + ATTRIBUTE_CPP_PPDIAG (3, 4); extern bool cpp_warning_syshdr (cpp_reader *, enum cpp_warning_reason reason, const char *msgid, ...) - ATTRIBUTE_PRINTF_3; + ATTRIBUTE_CPP_PPDIAG (3, 4); /* As their counterparts above, but use RICHLOC. */ extern bool cpp_warning_at (cpp_reader *, enum cpp_warning_reason, rich_location *richloc, const char *msgid, ...) - ATTRIBUTE_PRINTF_4; + ATTRIBUTE_CPP_PPDIAG (4, 5); extern bool cpp_pedwarning_at (cpp_reader *, enum cpp_warning_reason, rich_location *richloc, const char *msgid, ...) - ATTRIBUTE_PRINTF_4; + ATTRIBUTE_CPP_PPDIAG (4, 5); /* Output a diagnostic with "MSGID: " preceding the error string of errno. No location is printed. */ @@ -1385,27 +1393,27 @@ extern bool cpp_errno_filename (cpp_read extern bool cpp_error_with_line (cpp_reader *, enum cpp_diagnostic_level, location_t, unsigned, const char *msgid, ...) - ATTRIBUTE_PRINTF_5; + ATTRIBUTE_CPP_PPDIAG (5, 6); extern bool cpp_warning_with_line (cpp_reader *, enum cpp_warning_reason, location_t, unsigned, const char *msgid, ...) - ATTRIBUTE_PRINTF_5; + ATTRIBUTE_CPP_PPDIAG (5, 6); extern bool cpp_pedwarning_with_line (cpp_reader *, enum cpp_warning_reason, location_t, unsigned, const char *msgid, ...) - ATTRIBUTE_PRINTF_5; + ATTRIBUTE_CPP_PPDIAG (5, 6); extern bool cpp_warning_with_line_syshdr (cpp_reader *, enum cpp_warning_reason, location_t, unsigned, const char *msgid, ...) - ATTRIBUTE_PRINTF_5; + ATTRIBUTE_CPP_PPDIAG (5, 6); extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level, location_t src_loc, const char *msgid, ...) - ATTRIBUTE_PRINTF_4; + ATTRIBUTE_CPP_PPDIAG (4, 5); extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level, rich_location *richloc, const char *msgid, ...) - ATTRIBUTE_PRINTF_4; + ATTRIBUTE_CPP_PPDIAG (4, 5); /* In lex.cc */ extern int cpp_ideq (const cpp_token *, const char *); --- libcpp/Makefile.in.jj 2024-06-03 20:17:52.323099467 +0200 +++ libcpp/Makefile.in 2024-09-12 23:13:32.244876213 +0200 @@ -263,7 +263,7 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES) --keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \ --copyright-holder="Free Software Foundation, Inc." \ --msgid-bugs-address="https://gcc.gnu.org/bugs/" \ - --language=c -o po/$(PACKAGE).pot.tmp $^ + --language=GCC-source -o po/$(PACKAGE).pot.tmp $^ sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot rm po/$(PACKAGE).pot.tmp --- libcpp/errors.cc.jj 2024-01-03 22:33:38.347691673 +0100 +++ libcpp/errors.cc 2024-09-12 23:13:32.246876185 +0200 @@ -54,7 +54,7 @@ cpp_diagnostic_get_current_location (cpp /* Print a diagnostic at the given location. */ -ATTRIBUTE_FPTR_PRINTF(5,0) +ATTRIBUTE_CPP_PPDIAG (5, 0) static bool cpp_diagnostic_at (cpp_reader * pfile, enum cpp_diagnostic_level level, enum cpp_warning_reason reason, rich_location *richloc, @@ -71,7 +71,7 @@ cpp_diagnostic_at (cpp_reader * pfile, e /* Print a diagnostic at the location of the previously lexed token. */ -ATTRIBUTE_FPTR_PRINTF(4,0) +ATTRIBUTE_CPP_PPDIAG (4, 0) static bool cpp_diagnostic (cpp_reader * pfile, enum cpp_diagnostic_level level, enum cpp_warning_reason reason, @@ -190,7 +190,7 @@ cpp_pedwarning_at (cpp_reader * pfile, e /* Print a diagnostic at a specific location. */ -ATTRIBUTE_FPTR_PRINTF(6,0) +ATTRIBUTE_CPP_PPDIAG (6, 0) static bool cpp_diagnostic_with_line (cpp_reader * pfile, enum cpp_diagnostic_level level, enum cpp_warning_reason reason, --- libcpp/charset.cc.jj 2024-09-12 23:12:54.042423959 +0200 +++ libcpp/charset.cc 2024-09-12 23:13:32.241876256 +0200 @@ -867,8 +867,8 @@ cpp_host_to_exec_charset (cpp_reader *pf if (c > LAST_POSSIBLY_BASIC_SOURCE_CHAR) { cpp_error (pfile, CPP_DL_ICE, - "character 0x%lx is not in the basic source character set\n", - (unsigned long)c); + "character 0x%lx is not in the basic source character set", + (unsigned long) c); return 0; } @@ -1550,10 +1550,10 @@ _cpp_valid_ucn (cpp_reader *pfile, const else if (CPP_OPTION (pfile, cpp_warn_c90_c99_compat) > 0 && !CPP_OPTION (pfile, cplusplus)) cpp_error (pfile, CPP_DL_WARNING, - "C99's universal character names are incompatible with C90"); + "C99%'s universal character names are incompatible with C90"); else if (CPP_WTRADITIONAL (pfile) && identifier_pos == 0) cpp_warning (pfile, CPP_W_TRADITIONAL, - "the meaning of '\\%c' is different in traditional C", + "the meaning of %<\\%c%> is different in traditional C", (int) str[-1]); result = 0; @@ -1592,7 +1592,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const *cp = 0; return false; } - cpp_error (pfile, CPP_DL_ERROR, "'\\N' not followed by '{'"); + cpp_error (pfile, CPP_DL_ERROR, "%<\\N%> not followed by %<{%>"); } else { @@ -1656,13 +1656,13 @@ _cpp_valid_ucn (cpp_reader *pfile, const && (!CPP_OPTION (pfile, delimited_escape_seqs) || !strict)) ret = cpp_warning (pfile, CPP_W_UNICODE, - "\\N{%.*s} is not a valid " + "%<\\N{%.*s}%> is not a valid " "universal character; treating it " "as separate tokens", (int) (str - name), name); else cpp_error (pfile, CPP_DL_ERROR, - "\\N{%.*s} is not a valid universal " + "%<\\N{%.*s}%> is not a valid universal " "character", (int) (str - name), name); /* Try to do a loose name lookup according to @@ -1672,7 +1672,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const str - name, canon_name); if (result != (cppchar_t) -1 && ret) cpp_error (pfile, CPP_DL_NOTE, - "did you mean \\N{%s}?", canon_name); + "did you mean %<\\N{%s}%>?", canon_name); else result = 0xC0; if (identifier_pos @@ -1690,7 +1690,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const else if (identifier_pos) { cpp_warning (pfile, CPP_W_UNICODE, - "'\\N{' not terminated with '}' after %.*s; " + "%<\\N{%> not terminated with %<}%> after %.*s; " "treating it as separate tokens", (int) (str - base), base); *cp = 0; @@ -1699,7 +1699,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const else { cpp_error (pfile, CPP_DL_ERROR, - "'\\N{' not terminated with '}' after %.*s", + "%<\\N{%> not terminated with %<}%> after %.*s", (int) (str - base), base); result = 1; } @@ -1707,7 +1707,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const } else { - cpp_error (pfile, CPP_DL_ICE, "In _cpp_valid_ucn but not a UCN"); + cpp_error (pfile, CPP_DL_ICE, "in %<_cpp_valid_ucn%> but not a UCN"); length = 4; } @@ -1775,7 +1775,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const { if (delimited) cpp_warning (pfile, CPP_W_UNICODE, - "'\\u{' not terminated with '}' after %.*s; " + "%<\\u{%> not terminated with %<}%> after %.*s; " "treating it as separate tokens", (int) (str - base), base); *cp = 0; @@ -1791,7 +1791,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const (int) (str - base), base); else cpp_error (pfile, CPP_DL_ERROR, - "'\\u{' not terminated with '}' after %.*s", + "%<\\u{%> not terminated with %<}%> after %.*s", (int) (str - base), base); result = 1; } @@ -1821,7 +1821,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping) { CPP_OPTION (pfile, warn_dollars) = 0; - cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number"); + cpp_error (pfile, CPP_DL_PEDWARN, "%<$%> in identifier or number"); } NORMALIZE_STATE_UPDATE_IDNUM (nst, result); } @@ -2096,7 +2096,7 @@ convert_hex (cpp_reader *pfile, const uc if (CPP_WTRADITIONAL (pfile)) cpp_warning (pfile, CPP_W_TRADITIONAL, - "the meaning of '\\x' is different in traditional C"); + "the meaning of %<\\x%> is different in traditional C"); /* Skip 'x'. */ from++; @@ -2144,13 +2144,13 @@ convert_hex (cpp_reader *pfile, const uc if (!digits_found) { cpp_error (pfile, CPP_DL_ERROR, - "\\x used with no following hex digits"); + "%<\\x%> used with no following hex digits"); return from; } else if (delimited) { cpp_error (pfile, CPP_DL_ERROR, - "'\\x{' not terminated with '}' after %.*s", + "%<\\x{%> not terminated with %<}%> after %.*s", (int) (from - base), base); return from; } @@ -2201,7 +2201,7 @@ convert_oct (cpp_reader *pfile, const uc from++; extend_char_range (&char_range, loc_reader); if (from == limit || *from != '{') - cpp_error (pfile, CPP_DL_ERROR, "'\\o' not followed by '{'"); + cpp_error (pfile, CPP_DL_ERROR, "%<\\o%> not followed by %<}%>"); else { from++; @@ -2247,7 +2247,7 @@ convert_oct (cpp_reader *pfile, const uc else { cpp_error (pfile, CPP_DL_ERROR, - "'\\o{' not terminated with '}' after %.*s", + "%<\\o{%> not terminated with %<}%> after %.*s", (int) (from - base), base); return from; } @@ -2309,7 +2309,7 @@ convert_escape (cpp_reader *pfile, const if (uneval) cpp_pedwarning (pfile, CPP_W_PEDANTIC, "numeric escape sequence in unevaluated string: " - "'\\%c'", (int) c); + "%<\\%c%>", (int) c); return convert_hex (pfile, from, limit, tbuf, cvt, char_range, loc_reader, ranges); @@ -2319,7 +2319,7 @@ convert_escape (cpp_reader *pfile, const if (uneval) cpp_pedwarning (pfile, CPP_W_PEDANTIC, "numeric escape sequence in unevaluated string: " - "'\\%c'", (int) c); + "%<\\%c%>", (int) c); return convert_oct (pfile, from, limit, tbuf, cvt, char_range, loc_reader, ranges); @@ -2346,13 +2346,13 @@ convert_escape (cpp_reader *pfile, const case 'a': if (CPP_WTRADITIONAL (pfile)) cpp_warning (pfile, CPP_W_TRADITIONAL, - "the meaning of '\\a' is different in traditional C"); + "the meaning of %<\\a%> is different in traditional C"); c = charconsts[0]; break; case 'e': case 'E': cpp_pedwarning (pfile, CPP_W_PEDANTIC, - "non-ISO-standard escape sequence, '\\%c'", (int) c); + "non-ISO-standard escape sequence, %<\\%c%>", (int) c); c = charconsts[2]; break; @@ -2360,7 +2360,7 @@ convert_escape (cpp_reader *pfile, const unknown: if (ISGRAPH (c)) cpp_error (pfile, CPP_DL_PEDWARN, - "unknown escape sequence: '\\%c'", (int) c); + "unknown escape sequence: %<\\%c%>", (int) c); else { encoding_rich_location rich_loc (pfile); @@ -2370,7 +2370,7 @@ convert_escape (cpp_reader *pfile, const char buf[32]; sprintf(buf, "%03o", (int) c); cpp_error_at (pfile, CPP_DL_PEDWARN, &rich_loc, - "unknown escape sequence: '\\%s'", buf); + "unknown escape sequence: %<\\%s%>", buf); } } @@ -2655,7 +2655,7 @@ cpp_interpret_string_ranges (cpp_reader bool (*saved_diagnostic_handler) (cpp_reader *, enum cpp_diagnostic_level, enum cpp_warning_reason, rich_location *, const char *, va_list *) - ATTRIBUTE_FPTR_PRINTF(5,0); + ATTRIBUTE_CPP_PPDIAG (5, 0); saved_diagnostic_handler = pfile->cb.diagnostic; pfile->cb.diagnostic = noop_diagnostic_cb; @@ -2704,7 +2704,7 @@ count_source_chars (cpp_reader *pfile, c bool (*saved_diagnostic_handler) (cpp_reader *, enum cpp_diagnostic_level, enum cpp_warning_reason, rich_location *, const char *, va_list *) - ATTRIBUTE_FPTR_PRINTF(5,0); + ATTRIBUTE_CPP_PPDIAG (5, 0); saved_diagnostic_handler = pfile->cb.diagnostic; pfile->cb.diagnostic = noop_diagnostic_cb; convert_f save_func = pfile->narrow_cset_desc.func; @@ -2803,7 +2803,7 @@ narrow_str_to_charconst (cpp_reader *pfi if (type != CPP_UTF8CHAR) cpp_error (pfile, CPP_DL_WARNING, "multi-character literal with %ld characters exceeds " - "'int' size of %ld bytes", (long) i, (long) max_chars); + "%<int%> size of %ld bytes", (long) i, (long) max_chars); else if (src_chars > 2) cpp_error (pfile, CPP_DL_ERROR, "multi-character literal cannot have an encoding prefix"); --- libcpp/directives.cc.jj 2024-09-12 23:12:54.042423959 +0200 +++ libcpp/directives.cc 2024-09-13 10:50:58.586398187 +0200 @@ -235,7 +235,7 @@ check_eol_1 (cpp_reader *pfile, bool exp if (! SEEN_EOL () && (expand ? cpp_get_token (pfile) : _cpp_lex_token (pfile))->type != CPP_EOF) - cpp_pedwarning (pfile, reason, "extra tokens at end of #%s directive", + cpp_pedwarning (pfile, reason, "extra tokens at end of %<#%s%> directive", pfile->directive->name); } @@ -387,8 +387,8 @@ directive_diagnostics (cpp_reader *pfile if (dir->origin == EXTENSION && !(dir == &dtable[T_IMPORT] && CPP_OPTION (pfile, objc))) warned - = cpp_pedwarning (pfile, CPP_W_PEDANTIC, "#%s is a GCC extension", - dir->name); + = cpp_pedwarning (pfile, CPP_W_PEDANTIC, + "%<#%s%> is a GCC extension", dir->name); if (!warned && dir == &dtable[T_WARNING]) { if (CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, warning_directive)) @@ -396,18 +396,18 @@ directive_diagnostics (cpp_reader *pfile if (CPP_OPTION (pfile, cplusplus)) warned = cpp_pedwarning (pfile, CPP_W_CXX23_EXTENSIONS, - "#%s before C++23 is a GCC extension", + "%<#%s%> before C++23 is a GCC extension", dir->name); else warned = cpp_pedwarning (pfile, CPP_W_PEDANTIC, - "#%s before C23 is a GCC extension", + "%<#%s%> before C23 is a GCC extension", dir->name); } if (!warned && CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0) warned = cpp_warning (pfile, CPP_W_C11_C23_COMPAT, - "#%s before C23 is a GCC extension", + "%<#%s%> before C23 is a GCC extension", dir->name); } @@ -415,7 +415,7 @@ directive_diagnostics (cpp_reader *pfile || (dir == &dtable[T_IMPORT] && !CPP_OPTION (pfile, objc))) && !warned) cpp_warning (pfile, CPP_W_DEPRECATED, - "#%s is a deprecated GCC extension", dir->name); + "%<#%s%> is a deprecated GCC extension", dir->name); } /* Traditionally, a directive is ignored unless its # is in @@ -428,15 +428,15 @@ directive_diagnostics (cpp_reader *pfile { if (dir == &dtable[T_ELIF]) cpp_warning (pfile, CPP_W_TRADITIONAL, - "suggest not using #elif in traditional C"); + "suggest not using %<#elif%> in traditional C"); else if (indented && dir->origin == KANDR) cpp_warning (pfile, CPP_W_TRADITIONAL, - "traditional C ignores #%s with the # indented", + "traditional C ignores %<#%s%> with the %<#%> indented", dir->name); else if (!indented && dir->origin != KANDR) cpp_warning (pfile, CPP_W_TRADITIONAL, - "suggest hiding #%s from traditional C with an indented #", - dir->name); + "suggest hiding %<#%s%> from traditional C with an " + "indented %<#%>", dir->name); } } @@ -648,17 +648,17 @@ lex_macro_node (cpp_reader *pfile, bool if (is_def_or_undef && node == pfile->spec_nodes.n_defined) cpp_error (pfile, CPP_DL_ERROR, - "\"%s\" cannot be used as a macro name", + "%qs cannot be used as a macro name", NODE_NAME (node)); else if (! (node->flags & NODE_POISONED)) return node; } else if (token->flags & NAMED_OP) cpp_error (pfile, CPP_DL_ERROR, - "\"%s\" cannot be used as a macro name as it is an operator in C++", - NODE_NAME (token->val.node.node)); + "%qs cannot be used as a macro name as it is an operator " + "in C++", NODE_NAME (token->val.node.node)); else if (token->type == CPP_EOF) - cpp_error (pfile, CPP_DL_ERROR, "no macro name given in #%s directive", + cpp_error (pfile, CPP_DL_ERROR, "no macro name given in %<#%s%> directive", pfile->directive->name); else cpp_error (pfile, CPP_DL_ERROR, "macro names must be identifiers"); @@ -714,11 +714,11 @@ do_undef (cpp_reader *pfile) { if (node->flags & NODE_WARN) cpp_error (pfile, CPP_DL_WARNING, - "undefining \"%s\"", NODE_NAME (node)); + "undefining %qs", NODE_NAME (node)); else if (cpp_builtin_macro_p (node) && CPP_OPTION (pfile, warn_builtin_macro_redefined)) cpp_warning (pfile, CPP_W_BUILTIN_MACRO_REDEFINED, - "undefining \"%s\"", NODE_NAME (node)); + "undefining %qs", NODE_NAME (node)); if (node->value.macro && CPP_OPTION (pfile, warn_unused_macros)) @@ -775,7 +775,8 @@ glue_header_name (cpp_reader *pfile) break; if (token->type == CPP_EOF) { - cpp_error (pfile, CPP_DL_ERROR, "missing terminating > character"); + cpp_error (pfile, CPP_DL_ERROR, + "missing terminating %<>%> character"); break; } @@ -831,11 +832,11 @@ parse_include (cpp_reader *pfile, int *p const unsigned char *dir; if (pfile->directive == &dtable[T_PRAGMA]) - dir = UC"pragma dependency"; + dir = UC"pragma GCC dependency"; else dir = pfile->directive->name; - cpp_error (pfile, CPP_DL_ERROR, "#%s expects \"FILENAME\" or <FILENAME>", - dir); + cpp_error (pfile, CPP_DL_ERROR, + "%<#%s%> expects %<\"FILENAME\"%> or %<<FILENAME>%>", dir); return NULL; } @@ -890,8 +891,8 @@ do_include_common (cpp_reader *pfile, en if (pfile->line_table->depth >= CPP_OPTION (pfile, max_include_depth)) cpp_error (pfile, CPP_DL_ERROR, - "#include nested depth %u exceeds maximum of %u" - " (use -fmax-include-depth=DEPTH to increase the maximum)", + "%<#include%> nested depth %u exceeds maximum of %u" + " (use %<-fmax-include-depth=DEPTH%> to increase the maximum)", pfile->line_table->depth, CPP_OPTION (pfile, max_include_depth)); else @@ -935,7 +936,7 @@ do_include_next (cpp_reader *pfile) if (_cpp_in_main_source_file (pfile)) { cpp_error (pfile, CPP_DL_WARNING, - "#include_next in primary source file"); + "%<#include_next%> in primary source file"); type = IT_INCLUDE; } do_include_common (pfile, type); @@ -1090,7 +1091,7 @@ _cpp_parse_embed_params (cpp_reader *pfi { if (params->has_embed) { - cpp_error (pfile, CPP_DL_ERROR, "expected ')'"); + cpp_error (pfile, CPP_DL_ERROR, "expected %<)%>"); return false; } } @@ -1107,8 +1108,9 @@ _cpp_parse_embed_params (cpp_reader *pfi if (!params->has_embed) cpp_error_with_line (pfile, CPP_DL_ERROR, params->base64.base_run.base->src_loc, 0, - "'gnu::base64' parameter conflicts with " - "'limit' or 'gnu::offset' parameters"); + "%<gnu::base64%> parameter conflicts " + "with %<limit%> or %<gnu::offset%> " + "parameters"); } else if (params->base64.count == 0 && CPP_OPTION (pfile, preprocessed)) @@ -1116,7 +1118,7 @@ _cpp_parse_embed_params (cpp_reader *pfi ret = false; if (!params->has_embed) cpp_error_with_line (pfile, CPP_DL_ERROR, params->loc, 0, - "'gnu::base64' parameter required in " + "%<gnu::base64%> parameter required in " "preprocessed source"); } return ret; @@ -1137,7 +1139,7 @@ _cpp_parse_embed_params (cpp_reader *pfi token = _cpp_get_token_no_padding (pfile); if (token->type != CPP_COLON) { - cpp_error (pfile, CPP_DL_ERROR, "expected ':'"); + cpp_error (pfile, CPP_DL_ERROR, "expected %<:%>"); return false; } token = _cpp_get_token_no_padding (pfile); @@ -1225,7 +1227,7 @@ _cpp_parse_embed_params (cpp_reader *pfi } if (param_kind != (size_t) -1 && token->type != CPP_OPEN_PAREN) cpp_error_with_line (pfile, CPP_DL_ERROR, loc, 0, - "expected '('"); + "expected %<(%>"); else if (param_kind == EMBED_PARAM_LIMIT || param_kind == EMBED_PARAM_GNU_OFFSET) { @@ -1238,7 +1240,7 @@ _cpp_parse_embed_params (cpp_reader *pfi { if (res > INTTYPE_MAXIMUM (off_t)) cpp_error_with_line (pfile, CPP_DL_ERROR, loc, 0, - "too large 'gnu::offset' argument"); + "too large %<gnu::offset%> argument"); else params->offset = res; } @@ -1280,7 +1282,7 @@ _cpp_parse_embed_params (cpp_reader *pfi while (token->type == CPP_STRING); if (token->type != CPP_CLOSE_PAREN) cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc, 0, - "expected ')'"); + "expected %<)%>"); } else { @@ -1330,7 +1332,7 @@ do_embed (cpp_reader *pfile) if (CPP_OPTION (pfile, traditional)) { cpp_error (pfile, CPP_DL_ERROR, /* FIXME should be DL_SORRY */ - "#embed not supported in traditional C"); + "%<#embed%> not supported in traditional C"); skip_rest_of_line (pfile); goto done; } @@ -1339,10 +1341,10 @@ do_embed (cpp_reader *pfile) { if (CPP_OPTION (pfile, cplusplus)) cpp_error (pfile, CPP_DL_PEDWARN, - "#%s is a GCC extension", "embed"); + "%<#%s%> is a GCC extension", "embed"); else cpp_error (pfile, CPP_DL_PEDWARN, - "#%s before C23 is a GCC extension", "embed"); + "%<#%s%> before C23 is a GCC extension", "embed"); } fname = parse_include (pfile, &angle_brackets, NULL, ¶ms.loc); @@ -1400,7 +1402,7 @@ read_flag (cpp_reader *pfile, unsigned i } if (token->type != CPP_EOF) - cpp_error (pfile, CPP_DL_ERROR, "invalid flag \"%s\" in line directive", + cpp_error (pfile, CPP_DL_ERROR, "invalid flag %qs in line directive", cpp_token_as_text (pfile, token)); return 0; } @@ -1467,10 +1469,11 @@ do_line (cpp_reader *pfile) &new_lineno, &wrapped)) { if (token->type == CPP_EOF) - cpp_error (pfile, CPP_DL_ERROR, "unexpected end of file after #line"); + cpp_error (pfile, CPP_DL_ERROR, + "unexpected end of file after %<#line%>"); else cpp_error (pfile, CPP_DL_ERROR, - "\"%s\" after #line is not a positive integer", + "%qs after %<#line%> is not a positive integer", cpp_token_as_text (pfile, token)); return; } @@ -1492,7 +1495,7 @@ do_line (cpp_reader *pfile) } else if (token->type != CPP_EOF) { - cpp_error (pfile, CPP_DL_ERROR, "\"%s\" is not a valid filename", + cpp_error (pfile, CPP_DL_ERROR, "%qs is not a valid filename", cpp_token_as_text (pfile, token)); return; } @@ -1533,7 +1536,7 @@ do_linemarker (cpp_reader *pfile) /* Unlike #line, there does not seem to be a way to get an EOF here. So, it should be safe to always spell the token. */ cpp_error (pfile, CPP_DL_ERROR, - "\"%s\" after # is not a positive integer", + "%qs after # is not a positive integer", cpp_token_as_text (pfile, token)); return; } @@ -1573,7 +1576,7 @@ do_linemarker (cpp_reader *pfile) } else if (token->type != CPP_EOF) { - cpp_error (pfile, CPP_DL_ERROR, "\"%s\" is not a valid filename", + cpp_error (pfile, CPP_DL_ERROR, "%qs is not a valid filename", cpp_token_as_text (pfile, token)); return; } @@ -1600,7 +1603,7 @@ do_linemarker (cpp_reader *pfile) if (!from) { cpp_warning (pfile, CPP_W_NONE, - "file \"%s\" linemarker ignored due to " + "file %qs linemarker ignored due to " "incorrect nesting", new_file); return; } @@ -1769,7 +1772,7 @@ register_pragma_1 (cpp_reader *pfile, co else if (entry->allow_expansion != allow_name_expansion) { cpp_error (pfile, CPP_DL_ICE, - "registering pragmas in namespace \"%s\" with mismatched " + "registering pragmas in namespace %qs with mismatched " "name expansion", space); return NULL; } @@ -1778,7 +1781,7 @@ register_pragma_1 (cpp_reader *pfile, co else if (allow_name_expansion) { cpp_error (pfile, CPP_DL_ICE, - "registering pragma \"%s\" with name expansion " + "registering pragma %qs with name expansion " "and no namespace", name); return NULL; } @@ -1796,13 +1799,14 @@ register_pragma_1 (cpp_reader *pfile, co if (entry->is_nspace) clash: cpp_error (pfile, CPP_DL_ICE, - "registering \"%s\" as both a pragma and a pragma namespace", + "registering %qs as both a pragma and a pragma namespace", NODE_NAME (node)); else if (space) - cpp_error (pfile, CPP_DL_ICE, "#pragma %s %s is already registered", + cpp_error (pfile, CPP_DL_ICE, "%<#pragma %s %s%> is already registered", space, name); else - cpp_error (pfile, CPP_DL_ICE, "#pragma %s is already registered", name); + cpp_error (pfile, CPP_DL_ICE, "%<#pragma %s%> is already registered", + name); return NULL; } @@ -2049,7 +2053,7 @@ static void do_pragma_once (cpp_reader *pfile) { if (_cpp_in_main_source_file (pfile)) - cpp_error (pfile, CPP_DL_WARNING, "#pragma once in main file"); + cpp_error (pfile, CPP_DL_WARNING, "%<#pragma once%> in main file"); check_eol (pfile, false); _cpp_mark_file_once_only (pfile, pfile->buffer->file); @@ -2072,7 +2076,7 @@ do_pragma_push_macro (cpp_reader *pfile) { location_t src_loc = pfile->cur_token[-1].src_loc; cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, - "invalid #pragma push_macro directive"); + "invalid %<#pragma push_macro%> directive"); check_eol (pfile, false); skip_rest_of_line (pfile); return; @@ -2129,7 +2133,7 @@ do_pragma_pop_macro (cpp_reader *pfile) { location_t src_loc = pfile->cur_token[-1].src_loc; cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, - "invalid #pragma pop_macro directive"); + "invalid %<#pragma pop_macro%> directive"); check_eol (pfile, false); skip_rest_of_line (pfile); return; @@ -2184,7 +2188,7 @@ do_pragma_poison (cpp_reader *pfile) if (tok->type != CPP_NAME) { cpp_error (pfile, CPP_DL_ERROR, - "invalid #pragma GCC poison directive"); + "invalid %<#pragma GCC poison%> directive"); break; } @@ -2193,7 +2197,7 @@ do_pragma_poison (cpp_reader *pfile) continue; if (cpp_macro_p (hp)) - cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro \"%s\"", + cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro %qs", NODE_NAME (hp)); _cpp_free_definition (hp); hp->flags |= NODE_POISONED | NODE_DIAGNOSTIC; @@ -2215,7 +2219,7 @@ do_pragma_system_header (cpp_reader *pfi { if (_cpp_in_main_source_file (pfile)) cpp_error (pfile, CPP_DL_WARNING, - "#pragma system_header ignored outside include file"); + "%<#pragma system_header%> ignored outside include file"); else { check_eol (pfile, false); @@ -2268,7 +2272,7 @@ do_pragma_warning_or_error (cpp_reader * CPP_STRING) || str.len == 0) { - cpp_error (pfile, CPP_DL_ERROR, "invalid \"#pragma GCC %s\" directive", + cpp_error (pfile, CPP_DL_ERROR, "invalid %<#pragma GCC %s%> directive", error ? "error" : "warning"); return; } @@ -2476,7 +2480,7 @@ _cpp_do__Pragma (cpp_reader *pfile, loca return 1; } cpp_error (pfile, CPP_DL_ERROR, - "_Pragma takes a parenthesized string literal"); + "%<_Pragma%> takes a parenthesized string literal"); return 0; } @@ -2559,12 +2563,12 @@ do_else (cpp_reader *pfile) struct if_stack *ifs = buffer->if_stack; if (ifs == NULL) - cpp_error (pfile, CPP_DL_ERROR, "#else without #if"); + cpp_error (pfile, CPP_DL_ERROR, "%<#else%> without %<#if%>"); else { if (ifs->type == T_ELSE) { - cpp_error (pfile, CPP_DL_ERROR, "#else after #else"); + cpp_error (pfile, CPP_DL_ERROR, "%<#else%> after %<#else%>"); cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0, "the conditional began here"); } @@ -2592,12 +2596,13 @@ do_elif (cpp_reader *pfile) struct if_stack *ifs = buffer->if_stack; if (ifs == NULL) - cpp_error (pfile, CPP_DL_ERROR, "#%s without #if", pfile->directive->name); + cpp_error (pfile, CPP_DL_ERROR, "%<#%s%> without %<#if%>", + pfile->directive->name); else { if (ifs->type == T_ELSE) { - cpp_error (pfile, CPP_DL_ERROR, "#%s after #else", + cpp_error (pfile, CPP_DL_ERROR, "%<#%s%> after %<#else%>", pfile->directive->name); cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0, "the conditional began here"); @@ -2620,11 +2625,11 @@ do_elif (cpp_reader *pfile) { if (CPP_OPTION (pfile, cplusplus)) cpp_pedwarning (pfile, CPP_W_CXX23_EXTENSIONS, - "#%s before C++23 is a GCC extension", + "%<#%s%> before C++23 is a GCC extension", pfile->directive->name); else cpp_pedwarning (pfile, CPP_W_PEDANTIC, - "#%s before C23 is a GCC extension", + "%<#%s%> before C23 is a GCC extension", pfile->directive->name); } pfile->state.skipping = 1; @@ -2659,11 +2664,13 @@ do_elif (cpp_reader *pfile) { if (CPP_OPTION (pfile, cplusplus)) cpp_pedwarning (pfile, CPP_W_CXX23_EXTENSIONS, - "#%s before C++23 is a GCC extension", + "%<#%s%> before C++23 is a GCC " + "extension", pfile->directive->name); else cpp_pedwarning (pfile, CPP_W_PEDANTIC, - "#%s before C23 is a GCC extension", + "%<#%s%> before C23 is a GCC " + "extension", pfile->directive->name); } pfile->state.skipping = skip; @@ -2699,7 +2706,7 @@ do_endif (cpp_reader *pfile) struct if_stack *ifs = buffer->if_stack; if (ifs == NULL) - cpp_error (pfile, CPP_DL_ERROR, "#endif without #if"); + cpp_error (pfile, CPP_DL_ERROR, "%<#endif%> without %<#if%>"); else { /* Only check EOL if was not originally skipping. */ @@ -2775,7 +2782,7 @@ parse_answer (cpp_reader *pfile, int typ return true; cpp_error_with_line (pfile, CPP_DL_ERROR, pred_loc, 0, - "missing '(' after predicate"); + "missing %<(%> after predicate"); return false; } @@ -2793,7 +2800,7 @@ parse_answer (cpp_reader *pfile, int typ if (token->type == CPP_EOF) { - cpp_error (pfile, CPP_DL_ERROR, "missing ')' to complete answer"); + cpp_error (pfile, CPP_DL_ERROR, "missing %<)%> to complete answer"); return false; } @@ -2805,7 +2812,7 @@ parse_answer (cpp_reader *pfile, int typ if (!count) { - cpp_error (pfile, CPP_DL_ERROR, "predicate's answer is empty"); + cpp_error (pfile, CPP_DL_ERROR, "predicate%'s answer is empty"); return false; } @@ -2920,7 +2927,7 @@ do_assert (cpp_reader *pfile) is not a duplicate. */ if (*find_answer (node, answer)) { - cpp_error (pfile, CPP_DL_WARNING, "\"%s\" re-asserted", + cpp_error (pfile, CPP_DL_WARNING, "%qs re-asserted", NODE_NAME (node) + 1); return; } @@ -3003,10 +3010,10 @@ cpp_define (cpp_reader *pfile, const cha void cpp_define_unused (cpp_reader *pfile, const char *str) { - unsigned char warn_unused_macros = CPP_OPTION (pfile, warn_unused_macros); - CPP_OPTION (pfile, warn_unused_macros) = 0; - cpp_define (pfile, str); - CPP_OPTION (pfile, warn_unused_macros) = warn_unused_macros; + unsigned char warn_unused_macros = CPP_OPTION (pfile, warn_unused_macros); + CPP_OPTION (pfile, warn_unused_macros) = 0; + cpp_define (pfile, str); + CPP_OPTION (pfile, warn_unused_macros) = warn_unused_macros; } /* Use to build macros to be run through cpp_define() as --- libcpp/expr.cc.jj 2024-09-12 23:12:54.043423944 +0200 +++ libcpp/expr.cc 2024-09-13 09:52:31.719800975 +0200 @@ -678,10 +678,12 @@ cpp_classify_number (cpp_reader *pfile, { if (radix == 2) SYNTAX_ERROR2_AT (virtual_location, - "invalid digit \"%c\" in binary constant", '0' + max_digit); + "invalid digit %<%c%> in binary constant", + '0' + max_digit); else SYNTAX_ERROR2_AT (virtual_location, - "invalid digit \"%c\" in octal constant", '0' + max_digit); + "invalid digit %<%c%> in octal constant", + '0' + max_digit); } if (float_flag != NOT_FLOAT) @@ -689,7 +691,7 @@ cpp_classify_number (cpp_reader *pfile, if (radix == 2) { cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, - "invalid prefix \"0b\" for floating constant"); + "invalid prefix %<0b%> for floating constant"); return CPP_N_INVALID; } @@ -751,8 +753,8 @@ cpp_classify_number (cpp_reader *pfile, else { cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, - "invalid suffix \"%.*s\" on floating constant", - (int) (limit - str), str); + "invalid suffix %<%.*s%> on floating " + "constant", (int) (limit - str), str); return CPP_N_INVALID; } } @@ -762,7 +764,7 @@ cpp_classify_number (cpp_reader *pfile, && CPP_WTRADITIONAL (pfile) && ! cpp_sys_macro_p (pfile)) cpp_warning_with_line (pfile, CPP_W_TRADITIONAL, virtual_location, 0, - "traditional C rejects the \"%.*s\" suffix", + "traditional C rejects the %<%.*s%> suffix", (int) (limit - str), str); /* A suffix for double is a GCC extension via decimal float support. @@ -777,8 +779,8 @@ cpp_classify_number (cpp_reader *pfile, if ((result & CPP_N_DFLOAT) && radix != 10) { cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, - "invalid suffix \"%.*s\" with hexadecimal floating constant", - (int) (limit - str), str); + "invalid suffix %<%.*s%> with hexadecimal " + "floating constant", (int) (limit - str), str); return CPP_N_INVALID; } @@ -791,11 +793,12 @@ cpp_classify_number (cpp_reader *pfile, if (!CPP_OPTION (pfile, dfp_constants)) cpp_pedwarning_with_line (pfile, CPP_W_PEDANTIC, virtual_location, 0, - "decimal float constants are a C23 feature"); + "decimal floating constants are a C23 feature"); else if (CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0) cpp_warning_with_line (pfile, CPP_W_C11_C23_COMPAT, virtual_location, 0, - "decimal float constants are a C23 feature"); + "decimal floating constants are a C23 " + "feature"); } result |= CPP_N_FLOATING; @@ -814,8 +817,8 @@ cpp_classify_number (cpp_reader *pfile, else { cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0, - "invalid suffix \"%.*s\" on integer constant", - (int) (limit - str), str); + "invalid suffix %<%.*s%> on integer " + "constant", (int) (limit - str), str); return CPP_N_INVALID; } } @@ -831,7 +834,7 @@ cpp_classify_number (cpp_reader *pfile, if (u_or_i || large) cpp_warning_with_line (pfile, large ? CPP_W_LONG_LONG : CPP_W_TRADITIONAL, virtual_location, 0, - "traditional C rejects the \"%.*s\" suffix", + "traditional C rejects the %<%.*s%> suffix", (int) (limit - str), str); } @@ -853,9 +856,10 @@ cpp_classify_number (cpp_reader *pfile, if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T && !CPP_OPTION (pfile, size_t_literals)) { - const char *message = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED - ? N_("use of C++23 %<size_t%> integer constant") - : N_("use of C++23 %<make_signed_t<size_t>%> integer constant"); + const char *message + = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED + ? N_("use of C++23 %<size_t%> integer constant") + : N_("use of C++23 %<make_signed_t<size_t>%> integer constant"); cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS, virtual_location, 0, message); } @@ -1118,7 +1122,7 @@ parse_defined (cpp_reader *pfile) cpp_context *initial_context = pfile->context; if (pfile->state.in_directive == 3) - cpp_error (pfile, CPP_DL_ERROR, "'defined' in #embed parameter"); + cpp_error (pfile, CPP_DL_ERROR, "%<defined%> in %<#embed%> parameter"); /* Don't expand macros. */ pfile->state.prevent_expansion++; @@ -1135,14 +1139,14 @@ parse_defined (cpp_reader *pfile) node = token->val.node.node; if (paren && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN) { - cpp_error (pfile, CPP_DL_ERROR, "missing ')' after \"defined\""); + cpp_error (pfile, CPP_DL_ERROR, "missing %<)%> after %<defined%>"); node = 0; } } else { cpp_error (pfile, CPP_DL_ERROR, - "operator \"defined\" requires an identifier"); + "operator %<defined%> requires an identifier"); if (token->flags & NAMED_OP) { cpp_token op; @@ -1150,7 +1154,7 @@ parse_defined (cpp_reader *pfile) op.flags = 0; op.type = token->type; cpp_error (pfile, CPP_DL_ERROR, - "(\"%s\" is an alternative token for \"%s\" in C++)", + "(%qs is an alternative token for %qs in C++)", cpp_token_as_text (pfile, token), cpp_token_as_text (pfile, &op)); } @@ -1163,7 +1167,7 @@ parse_defined (cpp_reader *pfile) || initial_context != &pfile->base_context) && CPP_OPTION (pfile, warn_expansion_to_defined)) cpp_pedwarning (pfile, CPP_W_EXPANSION_TO_DEFINED, - "this use of \"defined\" may not be portable"); + "this use of %<defined%> may not be portable"); is_defined = _cpp_defined_macro_p (node); if (!_cpp_maybe_notify_macro_use (pfile, node, token->src_loc)) /* It wasn't a macro after all. */ @@ -1268,7 +1272,7 @@ eval_token (cpp_reader *pfile, const cpp result.low = 0; if (CPP_OPTION (pfile, warn_undef) && !pfile->state.skip_eval) cpp_warning_with_line (pfile, CPP_W_UNDEF, virtual_location, 0, - "\"%s\" is not defined, evaluates to 0", + "%qs is not defined, evaluates to %<0%>", NODE_NAME (token->val.node.node)); } break; @@ -1431,7 +1435,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons case CPP_HASH: if (!want_value) SYNTAX_ERROR2_AT (op.loc, - "missing binary operator before token \"%s\"", + "missing binary operator before token %qs", cpp_token_as_text (pfile, op.token)); want_value = false; top->value = eval_token (pfile, op.token, op.loc); @@ -1456,7 +1460,8 @@ _cpp_parse_expr (cpp_reader *pfile, cons default: if ((int) op.op <= (int) CPP_EQ || (int) op.op >= (int) CPP_PLUS_EQ) SYNTAX_ERROR2_AT (op.loc, - "token \"%s\" is not valid in preprocessor expressions", + "token %qs is not valid in preprocessor " + "expressions", cpp_token_as_text (pfile, op.token)); break; } @@ -1466,7 +1471,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons { if (!want_value) SYNTAX_ERROR2_AT (op.loc, - "missing binary operator before token \"%s\"", + "missing binary operator before token %qs", cpp_token_as_text (pfile, op.token)); } else if (want_value) @@ -1475,7 +1480,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons Try to emit a specific diagnostic. */ if (op.op == CPP_CLOSE_PAREN && top->op == CPP_OPEN_PAREN) SYNTAX_ERROR_AT (op.loc, - "missing expression between '(' and ')'"); + "missing expression between %<(%> and %<)%>"); if (op.op == CPP_EOF && top->op == CPP_EOF) SYNTAX_ERROR2_AT (op.loc, @@ -1483,13 +1488,13 @@ _cpp_parse_expr (cpp_reader *pfile, cons if (top->op != CPP_EOF && top->op != CPP_OPEN_PAREN) SYNTAX_ERROR2_AT (op.loc, - "operator '%s' has no right operand", + "operator %qs has no right operand", cpp_token_as_text (pfile, top->token)); else if (op.op == CPP_CLOSE_PAREN || op.op == CPP_EOF) /* Complain about missing paren during reduction. */; else SYNTAX_ERROR2_AT (op.loc, - "operator '%s' has no left operand", + "operator %qs has no left operand", cpp_token_as_text (pfile, op.token)); } @@ -1518,7 +1523,7 @@ _cpp_parse_expr (cpp_reader *pfile, cons case CPP_COLON: if (top->op != CPP_QUERY) SYNTAX_ERROR_AT (op.loc, - " ':' without preceding '?'"); + " %<:%> without preceding %<?%>"); if (!num_zerop (top[-1].value)) /* Was '?' condition true? */ pfile->state.skip_eval++; else @@ -1687,7 +1692,7 @@ reduce (cpp_reader *pfile, struct op *to { cpp_error_with_line (pfile, CPP_DL_ERROR, top->token->src_loc, - 0, "missing ')' in expression"); + 0, "missing %<)%> in expression"); return 0; } top--; @@ -1716,7 +1721,7 @@ reduce (cpp_reader *pfile, struct op *to /* COMMA and COLON should not reduce a QUERY operator. */ if (op == CPP_COMMA || op == CPP_COLON) return top; - cpp_error (pfile, CPP_DL_ERROR, "'?' without following ':'"); + cpp_error (pfile, CPP_DL_ERROR, "%<?%> without following %<:%>"); return 0; default: @@ -1731,7 +1736,7 @@ reduce (cpp_reader *pfile, struct op *to if (op == CPP_CLOSE_PAREN) { - cpp_error (pfile, CPP_DL_ERROR, "missing '(' in expression"); + cpp_error (pfile, CPP_DL_ERROR, "missing %<(%> in expression"); return 0; } @@ -1763,12 +1768,12 @@ check_promotion (cpp_reader *pfile, cons { if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision))) cpp_error_with_line (pfile, CPP_DL_WARNING, op[-1].loc, 0, - "the left operand of \"%s\" changes sign when promoted", - cpp_token_as_text (pfile, op->token)); + "the left operand of %qs changes sign when " + "promoted", cpp_token_as_text (pfile, op->token)); } else if (!num_positive (op->value, CPP_OPTION (pfile, precision))) cpp_error_with_line (pfile, CPP_DL_WARNING, op->loc, 0, - "the right operand of \"%s\" changes sign when promoted", + "the right operand of %qs changes sign when promoted", cpp_token_as_text (pfile, op->token)); } --- libcpp/files.cc.jj 2024-09-12 23:13:27.708941247 +0200 +++ libcpp/files.cc 2024-09-12 23:13:32.245876199 +0200 @@ -530,7 +530,7 @@ _cpp_find_file (cpp_reader *pfile, const /* Ensure we get no confusion between cached files and directories. */ if (start_dir == NULL) - cpp_error_at (pfile, CPP_DL_ICE, loc, "NULL directory in find_file"); + cpp_error_at (pfile, CPP_DL_ICE, loc, "NULL directory in %<find_file%>"); void **hash_slot = htab_find_slot_with_hash (pfile->file_hash, fname, @@ -607,7 +607,7 @@ _cpp_find_file (cpp_reader *pfile, const " but they were invalid"); if (!cpp_get_options (pfile)->warn_invalid_pch) cpp_error (pfile, CPP_DL_NOTE, - "use -Winvalid-pch for more information"); + "use %<-Winvalid-pch%> for more information"); } if (kind == _cpp_FFK_PRE_INCLUDE) @@ -1415,7 +1415,8 @@ finish_base64_embed (cpp_reader *pfile, { if (!params->has_embed) cpp_error_at (pfile, CPP_DL_ERROR, params->loc, - "'gnu::base64' parameter can be only used with \".\""); + "%<gnu::base64%> parameter can be only used with " + "%<\".\"%>"); return 0; } tokenrun *cur_run = ¶ms->base64.base_run; @@ -1431,7 +1432,7 @@ finish_base64_embed (cpp_reader *pfile, { fail: cpp_error_at (pfile, CPP_DL_ERROR, params->loc, - "'gnu::base64' argument not valid base64 " + "%<gnu::base64%> argument not valid base64 " "encoded string"); free (buf); return 0; --- libcpp/init.cc.jj 2024-09-12 23:12:54.044423930 +0200 +++ libcpp/init.cc 2024-09-12 23:13:32.243876228 +0200 @@ -653,7 +653,7 @@ static void sanity_checks (cpp_reader *p type precisions made by cpplib. */ test--; if (test < 1) - cpp_error (pfile, CPP_DL_ICE, "cppchar_t must be an unsigned type"); + cpp_error (pfile, CPP_DL_ICE, "%<cppchar_t%> must be an unsigned type"); if (CPP_OPTION (pfile, precision) > max_precision) cpp_error (pfile, CPP_DL_ICE, @@ -664,18 +664,19 @@ static void sanity_checks (cpp_reader *p if (CPP_OPTION (pfile, precision) < CPP_OPTION (pfile, int_precision)) cpp_error (pfile, CPP_DL_ICE, - "CPP arithmetic must be at least as precise as a target int"); + "CPP arithmetic must be at least as precise as a target " + "%<int%>"); if (CPP_OPTION (pfile, char_precision) < 8) - cpp_error (pfile, CPP_DL_ICE, "target char is less than 8 bits wide"); + cpp_error (pfile, CPP_DL_ICE, "target %<char%> is less than 8 bits wide"); if (CPP_OPTION (pfile, wchar_precision) < CPP_OPTION (pfile, char_precision)) cpp_error (pfile, CPP_DL_ICE, - "target wchar_t is narrower than target char"); + "target %<wchar_t%> is narrower than target %<char%>"); if (CPP_OPTION (pfile, int_precision) < CPP_OPTION (pfile, char_precision)) cpp_error (pfile, CPP_DL_ICE, - "target int is narrower than target char"); + "target %<int%> is narrower than target %<char%>"); /* This is assumed in eval_token() and could be fixed if necessary. */ if (sizeof (cppchar_t) > sizeof (cpp_num_part)) --- libcpp/lex.cc.jj 2024-09-12 23:12:54.045423916 +0200 +++ libcpp/lex.cc 2024-09-12 23:13:32.243876228 +0200 @@ -1036,7 +1036,7 @@ _cpp_process_line_notes (cpp_reader *pfi if (CPP_OPTION (pfile, trigraphs)) cpp_warning_with_line (pfile, CPP_W_TRIGRAPHS, pfile->line_table->highest_line, col, - "trigraph ??%c converted to %c", + "trigraph %<??%c%> converted to %<%c%>", note->type, (int) _cpp_trigraph_map[note->type]); else @@ -1044,7 +1044,7 @@ _cpp_process_line_notes (cpp_reader *pfi cpp_warning_with_line (pfile, CPP_W_TRIGRAPHS, pfile->line_table->highest_line, col, - "trigraph ??%c ignored, use -trigraphs to enable", + "trigraph %<??%c%> ignored, use %<-trigraphs%> to enable", note->type); } } @@ -1577,7 +1577,7 @@ maybe_warn_bidi_on_char (cpp_reader *pfi rich_loc.add_range (bidi::current_ctx_loc ()); cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc, "UTF-8 vs UCN mismatch when closing " - "a context by \"%s\"", bidi::to_str (kind)); + "a context by %qs", bidi::to_str (kind)); } } else if (warn_bidi & bidirectional_any @@ -1585,11 +1585,11 @@ maybe_warn_bidi_on_char (cpp_reader *pfi { if (kind == bidi::kind::PDF || kind == bidi::kind::PDI) cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc, - "\"%s\" is closing an unopened context", + "%qs is closing an unopened context", bidi::to_str (kind)); else cpp_warning_at (pfile, CPP_W_BIDIRECTIONAL, &rich_loc, - "found problematic Unicode character \"%s\"", + "found problematic Unicode character %qs", bidi::to_str (kind)); } } @@ -1619,13 +1619,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x>", + "invalid UTF-8 character %<<%x>%>", cur[0]); else cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x>", + "invalid UTF-8 character %<<%x>%>", cur[0]); return cur + 1; } @@ -1635,13 +1635,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x><%x>", + "invalid UTF-8 character %<<%x><%x>%>", cur[0], cur[1]); else cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x><%x>", + "invalid UTF-8 character %<<%x><%x>%>", cur[0], cur[1]); return cur + 2; } @@ -1651,13 +1651,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x><%x><%x>", + "invalid UTF-8 character %<<%x><%x><%x>%>", cur[0], cur[1], cur[2]); else cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x><%x><%x>", + "invalid UTF-8 character %<<%x><%x><%x>%>", cur[0], cur[1], cur[2]); return cur + 3; } @@ -1667,13 +1667,13 @@ _cpp_warn_invalid_utf8 (cpp_reader *pfil cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x><%x><%x><%x>", + "invalid UTF-8 character %<<%x><%x><%x><%x>%>", cur[0], cur[1], cur[2], cur[3]); else cpp_warning_with_line (pfile, CPP_W_INVALID_UTF8, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "invalid UTF-8 character <%x><%x><%x><%x>", + "invalid UTF-8 character %<<%x><%x><%x><%x>%>", cur[0], cur[1], cur[2], cur[3]); return cur + 4; } @@ -1755,7 +1755,7 @@ _cpp_skip_block_comment (cpp_reader *pfi cpp_warning_with_line (pfile, CPP_W_COMMENTS, pfile->line_table->highest_line, CPP_BUF_COL (buffer), - "\"/*\" within comment"); + "%</*%> within comment"); } } else if (c == '\n') @@ -1933,13 +1933,13 @@ warn_about_normalization (cpp_reader *pf sz = cpp_spell_token (pfile, token, buf, false) - buf; if (NORMALIZE_STATE_RESULT (s) == normalized_C) cpp_warning_at (pfile, CPP_W_NORMALIZE, &rich_loc, - "`%.*s' is not in NFKC", (int) sz, buf); + "%<%.*s%> is not in NFKC", (int) sz, buf); else if (identifier && CPP_OPTION (pfile, xid_identifiers)) cpp_pedwarning_at (pfile, CPP_W_NORMALIZE, &rich_loc, - "`%.*s' is not in NFC", (int) sz, buf); + "%<%.*s%> is not in NFC", (int) sz, buf); else cpp_warning_at (pfile, CPP_W_NORMALIZE, &rich_loc, - "`%.*s' is not in NFC", (int) sz, buf); + "%<%.*s%> is not in NFC", (int) sz, buf); free (buf); } } @@ -1966,7 +1966,7 @@ forms_identifier_p (cpp_reader *pfile, i if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping) { CPP_OPTION (pfile, warn_dollars) = 0; - cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number"); + cpp_error (pfile, CPP_DL_PEDWARN, "%<$%> in identifier or number"); } return true; @@ -2028,10 +2028,10 @@ maybe_va_opt_error (cpp_reader *pfile) { if (CPP_OPTION (pfile, cplusplus)) cpp_pedwarning (pfile, CPP_W_CXX20_EXTENSIONS, - "__VA_OPT__ is not available until C++20"); + "%<__VA_OPT__%> is not available until C++20"); else cpp_pedwarning (pfile, CPP_W_PEDANTIC, - "__VA_OPT__ is not available until C23"); + "%<__VA_OPT__%> is not available until C23"); } } else if (!pfile->state.va_args_ok) @@ -2039,7 +2039,7 @@ maybe_va_opt_error (cpp_reader *pfile) /* __VA_OPT__ should only appear in the replacement list of a variadic macro. */ cpp_error (pfile, CPP_DL_PEDWARN, - "__VA_OPT__ can only appear in the expansion" + "%<__VA_OPT__%> can only appear in the expansion" " of a C++20 variadic macro"); } } @@ -2056,7 +2056,7 @@ identifier_diagnostics_on_lex (cpp_reade /* It is allowed to poison the same identifier twice. */ if ((node->flags & NODE_POISONED) && !pfile->state.poisoned_ok) { - cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"", + cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned %qs", NODE_NAME (node)); const auto data = (cpp_hashnode_extra *) ht_lookup (pfile->extra_hash_table, node->ident, HT_NO_INSERT); @@ -2071,11 +2071,11 @@ identifier_diagnostics_on_lex (cpp_reade { if (CPP_OPTION (pfile, cplusplus)) cpp_error (pfile, CPP_DL_PEDWARN, - "__VA_ARGS__ can only appear in the expansion" + "%<__VA_ARGS__%> can only appear in the expansion" " of a C++11 variadic macro"); else cpp_error (pfile, CPP_DL_PEDWARN, - "__VA_ARGS__ can only appear in the expansion" + "%<__VA_ARGS__%> can only appear in the expansion" " of a C99 variadic macro"); } @@ -2087,7 +2087,7 @@ identifier_diagnostics_on_lex (cpp_reade /* For -Wc++-compat, warn about use of C++ named operators. */ if (node->flags & NODE_WARN_OPERATOR) cpp_warning (pfile, CPP_W_CXX_OPERATOR_NAMES, - "identifier \"%s\" is a special operator name in C++", + "identifier %qs is a special operator name in C++", NODE_NAME (node)); } @@ -3485,7 +3485,7 @@ cpp_maybe_module_directive (cpp_reader * && _cpp_maybe_notify_macro_use (pfile, node, tok->src_loc) && !cpp_fun_like_macro_p (node)) cpp_error_with_line (pfile, CPP_DL_ERROR, tok->src_loc, 0, - "module control-line \"%s\" cannot be" + "module control-line %qs cannot be" " an object-like macro", NODE_NAME (node)); } --- libcpp/macro.cc.jj 2024-09-12 23:12:54.046423901 +0200 +++ libcpp/macro.cc 2024-09-12 23:13:32.246876185 +0200 @@ -141,7 +141,7 @@ class vaopt_state { if (m_state > 0) { cpp_error_at (m_pfile, CPP_DL_ERROR, token->src_loc, - "__VA_OPT__ may not appear in a __VA_OPT__"); + "%<__VA_OPT__%> may not appear in a %<__VA_OPT__%>"); return ERROR; } ++m_state; @@ -154,7 +154,7 @@ class vaopt_state { if (token->type != CPP_OPEN_PAREN) { cpp_error_at (m_pfile, CPP_DL_ERROR, m_location, - "__VA_OPT__ must be followed by an " + "%<__VA_OPT__%> must be followed by an " "open parenthesis"); return ERROR; } @@ -232,7 +232,7 @@ class vaopt_state { { if (m_variadic && m_state != 0) cpp_error_at (m_pfile, CPP_DL_ERROR, m_location, - "unterminated __VA_OPT__"); + "unterminated %<__VA_OPT__%>"); return m_state == 0; } @@ -393,7 +393,7 @@ builtin_has_include_1 (cpp_reader *pfile { if (!pfile->state.in_directive) cpp_error (pfile, CPP_DL_ERROR, - "\"%s\" used outside of preprocessing directive", name); + "%qs used outside of preprocessing directive", name); pfile->state.angled_headers = true; const auto sav_padding = pfile->state.directive_wants_padding; @@ -404,7 +404,7 @@ builtin_has_include_1 (cpp_reader *pfile token = _cpp_get_token_no_padding (pfile); else cpp_error (pfile, CPP_DL_ERROR, - "missing '(' before \"%s\" operand", name); + "missing %<(%> before %qs operand", name); pfile->state.angled_headers = false; pfile->state.directive_wants_padding = sav_padding; @@ -422,7 +422,7 @@ builtin_has_include_1 (cpp_reader *pfile fname = _cpp_bracket_include (pfile); else cpp_error (pfile, CPP_DL_ERROR, - "operator \"%s\" requires a header-name", name); + "operator %qs requires a header-name", name); return fname; } @@ -451,7 +451,7 @@ builtin_has_include (cpp_reader *pfile, if (paren && _cpp_get_token_no_padding (pfile)->type != CPP_CLOSE_PAREN) cpp_error (pfile, CPP_DL_ERROR, - "missing ')' after \"%s\" operand", NODE_NAME (op)); + "missing %<)%> after %qs operand", NODE_NAME (op)); return result; } @@ -496,7 +496,7 @@ builtin_has_embed (cpp_reader *pfile) if (!*fname) { cpp_error_with_line (pfile, CPP_DL_ERROR, params.loc, 0, - "empty filename in '%s'", "__has_embed"); + "empty filename in %qs", "__has_embed"); ok = false; } @@ -530,7 +530,7 @@ _cpp_warn_if_unused_macro (cpp_reader *p (linemap_lookup (pfile->line_table, macro->line)))) cpp_warning_with_line (pfile, CPP_W_UNUSED_MACROS, macro->line, 0, - "macro \"%s\" is not used", NODE_NAME (node)); + "macro %qs is not used", NODE_NAME (node)); } return 1; @@ -569,14 +569,14 @@ _cpp_builtin_macro_text (cpp_reader *pfi switch (node->value.builtin) { default: - cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro \"%s\"", + cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro %qs", NODE_NAME (node)); break; case BT_TIMESTAMP: { if (CPP_OPTION (pfile, warn_date_time)) - cpp_warning (pfile, CPP_W_DATE_TIME, "macro \"%s\" might prevent " + cpp_warning (pfile, CPP_W_DATE_TIME, "macro %qs might prevent " "reproducible builds", NODE_NAME (node)); cpp_buffer *pbuffer = cpp_get_buffer (pfile); @@ -684,7 +684,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi case BT_DATE: case BT_TIME: if (CPP_OPTION (pfile, warn_date_time)) - cpp_warning (pfile, CPP_W_DATE_TIME, "macro \"%s\" might prevent " + cpp_warning (pfile, CPP_W_DATE_TIME, "macro %qs might prevent " "reproducible builds", NODE_NAME (node)); if (pfile->date == NULL) { @@ -730,7 +730,8 @@ _cpp_builtin_macro_text (cpp_reader *pfi case BT_COUNTER: if (CPP_OPTION (pfile, directives_only) && pfile->state.in_directive) cpp_error (pfile, CPP_DL_ERROR, - "__COUNTER__ expanded inside directive with -fdirectives-only"); + "%<__COUNTER__%> expanded inside directive with " + "%<-fdirectives-only%>"); number = pfile->counter++; break; @@ -756,7 +757,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi if (CPP_OPTION (pfile, traditional)) { cpp_error (pfile, CPP_DL_ERROR, /* FIXME should be DL_SORRY */ - "'__has_embed' not supported in traditional C"); + "%<__has_embed%> not supported in traditional C"); break; } number = builtin_has_embed (pfile); @@ -884,7 +885,7 @@ builtin_macro (cpp_reader *pfile, cpp_ha else _cpp_push_token_context (pfile, NULL, token, 1); if (pfile->buffer->cur != pfile->buffer->rlimit) - cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro \"%s\"", + cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro %qs", NODE_NAME (node)); _cpp_pop_buffer (pfile); @@ -1003,7 +1004,7 @@ stringify_arg (cpp_reader *pfile, const if (backslash_count & 1) { cpp_error (pfile, CPP_DL_WARNING, - "invalid string literal, ignoring final '\\'"); + "invalid string literal, ignoring final %<\\%>"); dest--; } @@ -1200,26 +1201,26 @@ _cpp_arguments_ok (cpp_reader *pfile, cp if (CPP_OPTION (pfile, cplusplus)) cpp_pedwarning (pfile, CPP_W_CXX20_EXTENSIONS, "ISO C++11 requires at least one argument " - "for the \"...\" in a variadic macro"); + "for the %<...%> in a variadic macro"); else cpp_pedwarning (pfile, CPP_W_PEDANTIC, "ISO C99 requires at least one argument " - "for the \"...\" in a variadic macro"); + "for the %<...%> in a variadic macro"); } return true; } cpp_error (pfile, CPP_DL_ERROR, - "macro \"%s\" requires %u arguments, but only %u given", + "macro %qs requires %u arguments, but only %u given", NODE_NAME (node), macro->paramc, argc); } else cpp_error (pfile, CPP_DL_ERROR, - "macro \"%s\" passed %u arguments, but takes just %u", + "macro %qs passed %u arguments, but takes just %u", NODE_NAME (node), argc, macro->paramc); if (macro->line > RESERVED_LOCATION_COUNT) - cpp_error_at (pfile, CPP_DL_NOTE, macro->line, "macro \"%s\" defined here", + cpp_error_at (pfile, CPP_DL_NOTE, macro->line, "macro %qs defined here", NODE_NAME (node)); return false; @@ -1413,7 +1414,7 @@ collect_args (cpp_reader *pfile, const c if (token == &pfile->endarg) _cpp_backup_tokens (pfile, 1); cpp_error (pfile, CPP_DL_ERROR, - "unterminated argument list invoking macro \"%s\"", + "unterminated argument list invoking macro %qs", NODE_NAME (node)); } else @@ -1559,8 +1560,8 @@ enter_macro_context (cpp_reader *pfile, { if (CPP_WTRADITIONAL (pfile) && ! node->value.macro->syshdr) cpp_warning (pfile, CPP_W_TRADITIONAL, - "function-like macro \"%s\" must be used with arguments in traditional C", - NODE_NAME (node)); + "function-like macro %qs must be used with " + "arguments in traditional C", NODE_NAME (node)); if (pragma_buff) _cpp_release_buff (pfile, pragma_buff); @@ -3462,7 +3463,7 @@ _cpp_save_parameter (cpp_reader *pfile, /* Constraint 6.10.3.6 - duplicate parameter names. */ if (node->type == NT_MACRO_ARG) { - cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter \"%s\"", + cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter %qs", NODE_NAME (node)); return false; } @@ -3544,11 +3545,11 @@ parse_params (cpp_reader *pfile, unsigne { const char *const msgs[5] = { - N_("expected parameter name, found \"%s\""), - N_("expected ',' or ')', found \"%s\""), + N_("expected parameter name, found %qs"), + N_("expected %<,%> or %<)%>, found %qs"), N_("expected parameter name before end of line"), - N_("expected ')' before end of line"), - N_("expected ')' after \"...\"") + N_("expected %<)%> before end of line"), + N_("expected %<)%> after %<...%>") }; unsigned ix = prev_ident; const unsigned char *as_text = NULL; @@ -3663,7 +3664,7 @@ create_iso_definition (cpp_reader *pfile { bool following_paste_op = false; const char *paste_op_error_msg = - N_("'##' cannot appear at either end of a macro expansion"); + N_("%<##%> cannot appear at either end of a macro expansion"); unsigned int num_extra_tokens = 0; unsigned nparms = 0; cpp_hashnode **params = NULL; @@ -3779,7 +3780,7 @@ create_iso_definition (cpp_reader *pfile else if (CPP_OPTION (pfile, lang) != CLK_ASM) { cpp_error (pfile, CPP_DL_ERROR, - "'#' is not followed by a macro parameter"); + "%<#%> is not followed by a macro parameter"); goto out; } } @@ -3940,15 +3941,14 @@ _cpp_create_definition (cpp_reader *pfil = (cpp_builtin_macro_p (node) && !(node->flags & NODE_WARN)) ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE; - bool warned = - cpp_pedwarning_with_line (pfile, reason, - macro->line, 0, - "\"%s\" redefined", NODE_NAME (node)); + bool warned + = cpp_pedwarning_with_line (pfile, reason, macro->line, 0, + "%qs redefined", NODE_NAME (node)); if (warned && cpp_user_macro_p (node)) - cpp_error_with_line (pfile, CPP_DL_NOTE, - node->value.macro->line, 0, - "this is the location of the previous definition"); + cpp_error_with_line (pfile, CPP_DL_NOTE, node->value.macro->line, + 0, "this is the location of the previous " + "definition"); } _cpp_free_definition (node); } @@ -4085,8 +4085,8 @@ check_trad_stringification (cpp_reader * && !memcmp (p, NODE_NAME (node), len)) { cpp_warning (pfile, CPP_W_TRADITIONAL, - "macro argument \"%s\" would be stringified in traditional C", - NODE_NAME (node)); + "macro argument %qs would be stringified in " + "traditional C", NODE_NAME (node)); break; } } --- libcpp/pch.cc.jj 2024-02-01 20:31:40.597630432 +0100 +++ libcpp/pch.cc 2024-09-12 23:13:32.241876256 +0200 @@ -613,7 +613,7 @@ cpp_valid_state (cpp_reader *r, const ch { if (CPP_OPTION (r, warn_invalid_pch)) cpp_warning_syshdr (r, CPP_W_INVALID_PCH, - "%s: not used because `%.*s' is poisoned", + "%s: not used because %<%.*s%> is poisoned", name, m.name_length, namebuf); goto fail; } @@ -635,7 +635,7 @@ cpp_valid_state (cpp_reader *r, const ch if (CPP_OPTION (r, warn_invalid_pch)) cpp_warning_syshdr (r, CPP_W_INVALID_PCH, - "%s: not used because `%.*s' not defined", + "%s: not used because %<%.*s%> not defined", name, m.name_length, namebuf); goto fail; } @@ -647,10 +647,12 @@ cpp_valid_state (cpp_reader *r, const ch { if (CPP_OPTION (r, warn_invalid_pch)) cpp_warning_syshdr (r, CPP_W_INVALID_PCH, - "%s: not used because `%.*s' defined as `%s' not `%.*s'", - name, m.name_length, namebuf, newdefn + m.name_length, - m.definition_length - m.name_length, - namebuf + m.name_length); + "%s: not used because %<%.*s%> defined as " + "%<%s%> not %<%.*s%>", + name, m.name_length, namebuf, + newdefn + m.name_length, + m.definition_length - m.name_length, + namebuf + m.name_length); goto fail; } } @@ -688,7 +690,7 @@ cpp_valid_state (cpp_reader *r, const ch { if (CPP_OPTION (r, warn_invalid_pch)) cpp_warning_syshdr (r, CPP_W_INVALID_PCH, - "%s: not used because `%s' is defined", + "%s: not used because %qs is defined", name, first); goto fail; } @@ -708,7 +710,7 @@ cpp_valid_state (cpp_reader *r, const ch { if (CPP_OPTION (r, warn_invalid_pch)) cpp_warning_syshdr (r, CPP_W_INVALID_PCH, - "%s: not used because `__COUNTER__' is invalid", + "%s: not used because %<__COUNTER__%> is invalid", name); goto fail; } --- libcpp/traditional.cc.jj 2024-01-03 22:33:38.352691603 +0100 +++ libcpp/traditional.cc 2024-09-12 23:13:32.244876213 +0200 @@ -819,7 +819,7 @@ _cpp_scan_out_logical_line (cpp_reader * if (lex_state == ls_fun_close) cpp_error_with_line (pfile, CPP_DL_ERROR, fmacro.line, 0, - "unterminated argument list invoking macro \"%s\"", + "unterminated argument list invoking macro %qs", NODE_NAME (fmacro.node)); return result; } @@ -888,7 +888,7 @@ recursive_macro (cpp_reader *pfile, cpp_ if (recursing) cpp_error (pfile, CPP_DL_ERROR, - "detected recursion whilst expanding macro \"%s\"", + "detected recursion whilst expanding macro %qs", NODE_NAME (node)); return recursing; --- gcc/Makefile.in.jj 2024-09-12 18:15:16.646678098 +0200 +++ gcc/Makefile.in 2024-09-12 19:54:32.336312293 +0200 @@ -2957,12 +2957,12 @@ generated_files = config.h tm.h $(TM_P_H $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \ options.h target-hooks-def.h insn-opinit.h \ common/common-target-hooks-def.h pass-instances.def \ - $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) \ - gimple-match-auto.h generic-match-auto.h \ c-family/c-target-hooks-def.h d/d-target-hooks-def.h \ $(TM_RUST_H) rust/rust-target-hooks-def.h \ case-cfn-macros.h \ cfn-operators.pd omp-device-properties.h +generated_match_files = gimple-match-auto.h generic-match-auto.h \ + $(GIMPLE_MATCH_PD_SEQ_SRC) $(GENERIC_MATCH_PD_SEQ_SRC) # # How to compile object files to run on the build machine. @@ -3146,7 +3146,8 @@ build/genmatch$(build_exeext): BUILD_LIB endif build/genmatch$(build_exeext) : $(BUILD_CPPLIB) \ - $(BUILD_ERRORS) build/vec.o build/hash-table.o build/sort.o + build/vec.o build/hash-table.o build/sort.o libcommon.a \ + $(LIBBACKTRACE) # These programs are not linked with the MD reader. build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \ @@ -4575,6 +4576,8 @@ po/gcc.pot: force # objects from $(OBJS) as early as possible, build all their # prerequisites strictly before all objects. $(ALL_HOST_OBJS) : | $(generated_files) +# build/genmatch depends on libcommon.a, so avoid circular dependencies. +$(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) : | $(generated_match_files) # Include the auto-generated dependencies for all host objects. DEPFILES = \ --- gcc/genmatch.cc.jj 2024-09-12 18:15:16.685677568 +0200 +++ gcc/genmatch.cc 2024-09-12 19:14:55.970740747 +0200 @@ -31,18 +31,21 @@ along with GCC; see the file COPYING3. #include "hash-set.h" #include "is-a.h" #include "ordered-hash-map.h" +#include "pretty-print.h" +#include "input.h" - -/* Stubs for GGC referenced through instantiations triggered by hash-map. */ -void *ggc_internal_cleared_alloc (size_t, void (*)(void *), - size_t, size_t MEM_STAT_DECL) -{ - return NULL; -} -void ggc_free (void *) +void +fatal (const char *format, ...) { -} + va_list ap; + va_start (ap, format); + fprintf (stderr, "%s: ", progname); + vfprintf (stderr, format, ap); + va_end (ap); + fputc ('\n', stderr); + exit (FATAL_EXIT_CODE); +} /* Global state. */ @@ -52,29 +55,9 @@ unsigned verbose; /* libccp helpers. */ -static class line_maps *line_table; - -/* The rich_location class within libcpp requires a way to expand - location_t instances, and relies on the client code - providing a symbol named - linemap_client_expand_location_to_spelling_point - to do this. - - This is the implementation for genmatch. */ - -expanded_location -linemap_client_expand_location_to_spelling_point (const line_maps *set, - location_t loc, - enum location_aspect) -{ - const struct line_map_ordinary *map; - loc = linemap_resolve_location (set, loc, LRK_SPELLING_LOCATION, &map); - return linemap_expand_location (set, map, loc); -} - static bool #if GCC_VERSION >= 4001 -__attribute__((format (printf, 5, 0))) +__attribute__((format (gcc_diag, 5, 0))) #endif diagnostic_cb (cpp_reader *, enum cpp_diagnostic_level errtype, enum cpp_warning_reason, rich_location *richloc, @@ -86,7 +69,11 @@ diagnostic_cb (cpp_reader *, enum cpp_di expanded_location loc = linemap_expand_location (line_table, map, location); fprintf (stderr, "%s:%d:%d %s: ", loc.file, loc.line, loc.column, (errtype == CPP_DL_WARNING) ? "warning" : "error"); - vfprintf (stderr, msg, *ap); + pretty_printer pp; + pp.set_output_stream (stderr); + text_info text (msg, ap, errno); + pp_format_verbatim (&pp, &text); + pp_flush (&pp); fprintf (stderr, "\n"); FILE *f = fopen (loc.file, "r"); if (f) @@ -119,7 +106,7 @@ notfound: static void #if GCC_VERSION >= 4001 -__attribute__((format (printf, 2, 3))) +__attribute__((format (gcc_diag, 2, 3))) #endif fatal_at (const cpp_token *tk, const char *msg, ...) { @@ -132,7 +119,7 @@ fatal_at (const cpp_token *tk, const cha static void #if GCC_VERSION >= 4001 -__attribute__((format (printf, 2, 3))) +__attribute__((format (gcc_diag, 2, 3))) #endif fatal_at (location_t loc, const char *msg, ...) { @@ -145,7 +132,7 @@ fatal_at (location_t loc, const char *ms static void #if GCC_VERSION >= 4001 -__attribute__((format (printf, 2, 3))) +__attribute__((format (gcc_diag, 2, 3))) #endif warning_at (const cpp_token *tk, const char *msg, ...) { @@ -158,7 +145,7 @@ warning_at (const cpp_token *tk, const c static void #if GCC_VERSION >= 4001 -__attribute__((format (printf, 2, 3))) +__attribute__((format (gcc_diag, 2, 3))) #endif warning_at (location_t loc, const char *msg, ...) { @@ -267,8 +254,8 @@ output_line_directive (FILE *f, location bool dumpfile = false, bool fnargs = false, bool indirect_line_numbers = false) { - typedef pair_hash<nofree_string_hash, int_hash<int, -1>> location_hash; - static hash_map<location_hash, int> loc_id_map; + typedef pair_hash<nofree_string_hash, int_hash<int, -1>> loc_hash; + static hash_map<loc_hash, int> loc_id_map; const line_map_ordinary *map; linemap_resolve_location (line_table, location, LRK_SPELLING_LOCATION, &map); expanded_location loc = linemap_expand_location (line_table, map, location); @@ -4558,7 +4545,7 @@ parser::eat_ident (const char *s) const cpp_token *token = peek (); const char *t = get_ident (); if (strcmp (s, t) != 0) - fatal_at (token, "expected '%s' got '%s'\n", s, t); + fatal_at (token, "expected %qs got %qs", s, t); return token; } @@ -4626,7 +4613,7 @@ parser::parse_operation (unsigned char & alt_id = xstrdup (id); alt_id[strlen (id) - 1] = '\0'; if (opt_grp == 1) - fatal_at (id_tok, "use '%s?' here", alt_id); + fatal_at (id_tok, "use %<%s?%> here", alt_id); } else opt_grp = 1; @@ -4711,10 +4698,10 @@ parser::parse_expr () if (token->type == CPP_XOR && !(token->flags & PREV_WHITE)) { if (!parsing_match_operand) - fatal_at (token, "modifier '^' is only valid in a match expression"); + fatal_at (token, "modifier %<^%> is only valid in a match expression"); if (!(*e->operation == COND_EXPR)) - fatal_at (token, "modifier '^' can only act on operation COND_EXPR"); + fatal_at (token, "modifier %<^%> can only act on operation %<COND_EXPR%>"); eat_token (CPP_XOR); e->match_phi = true; @@ -5429,7 +5416,7 @@ parser::parse_pattern () { if (active_ifs.length () > 0 || active_fors.length () > 0) - fatal_at (token, "define_predicates inside if or for is not supported"); + fatal_at (token, "%<define_predicates%> inside if or for is not supported"); parse_predicates (token->src_loc); } else if (strcmp (id, "define_operator_list") == 0) @@ -5439,10 +5426,11 @@ parser::parse_pattern () fatal_at (token, "operator-list inside if or for is not supported"); parse_operator_list (token->src_loc); } + else if (active_ifs.length () == 0 && active_fors.length () == 0) + fatal_at (token, "expected %<define_predicates%>, %<simplify%>, " + "%<match%>, %<for%> or %<if%>"); else - fatal_at (token, "expected %s'simplify', 'match', 'for' or 'if'", - active_ifs.length () == 0 && active_fors.length () == 0 - ? "'define_predicates', " : ""); + fatal_at (token, "expected %<simplify%>, %<match%>, %<for%> or %<if%>"); eat_token (CPP_CLOSE_PAREN); } @@ -5484,12 +5472,13 @@ parser::finish_match_operand (operand *o if (cpts[i][j]->value_match) { if (value_match) - fatal_at (cpts[i][j]->location, "duplicate @@"); + fatal_at (cpts[i][j]->location, "duplicate %s", "@@"); value_match = cpts[i][j]; } } if (cpts[i].length () == 1 && value_match) - fatal_at (value_match->location, "@@ without a matching capture"); + fatal_at (value_match->location, + "%s without a matching capture", "@@"); if (value_match) { /* Duplicate prevailing capture with the existing ID, create --- gcc/c-family/c-lex.cc.jj 2024-08-31 15:57:38.668024919 +0200 +++ gcc/c-family/c-lex.cc 2024-09-12 19:40:38.012724079 +0200 @@ -342,7 +342,7 @@ c_common_has_attribute (cpp_reader *pfil if (token->type != CPP_OPEN_PAREN) { cpp_error (pfile, CPP_DL_ERROR, - "missing '(' after \"__has_attribute\""); + "missing %<(%> after %<__has_attribute%>"); return 0; } token = get_token_no_padding (pfile); @@ -464,13 +464,13 @@ c_common_has_attribute (cpp_reader *pfil else { cpp_error (pfile, CPP_DL_ERROR, - "macro \"__has_attribute\" requires an identifier"); + "macro %<__has_attribute%> requires an identifier"); return 0; } if (get_token_no_padding (pfile)->type != CPP_CLOSE_PAREN) cpp_error (pfile, CPP_DL_ERROR, - "missing ')' after \"__has_attribute\""); + "missing %<)%> after %<__has_attribute%>"); return result; } @@ -484,7 +484,7 @@ c_common_lex_availability_macro (cpp_rea if (token->type != CPP_OPEN_PAREN) { cpp_error (pfile, CPP_DL_ERROR, - "missing '(' after \"__has_%s\"", builtin); + "missing %<(%> after %<__has_%s%>", builtin); return 0; } @@ -497,14 +497,14 @@ c_common_lex_availability_macro (cpp_rea if (token->type != CPP_CLOSE_PAREN) { cpp_error (pfile, CPP_DL_ERROR, - "expected ')' after \"%s\"", name); + "expected %<)%> after %<%s%>", name); name = ""; } } else { cpp_error (pfile, CPP_DL_ERROR, - "macro \"__has_%s\" requires an identifier", builtin); + "macro %<__has_%s%> requires an identifier", builtin); if (token->type == CPP_CLOSE_PAREN) return 0; } --- gcc/testsuite/c-c++-common/cpp/counter-2.c.jj 2020-05-11 23:00:07.547503865 +0200 +++ gcc/testsuite/c-c++-common/cpp/counter-2.c 2024-09-13 09:20:12.497617451 +0200 @@ -10,5 +10,5 @@ #ifdef __COUNTER__ /* Macro not expanded. */ #endif -#if __COUNTER__ == 0 /* { dg-error "__COUNTER__ expanded inside directive with -fdirectives-only" } */ +#if __COUNTER__ == 0 /* { dg-error "'__COUNTER__' expanded inside directive with '-fdirectives-only'" } */ #endif --- gcc/testsuite/c-c++-common/cpp/embed-3.c.jj 2024-09-12 23:12:54.031424116 +0200 +++ gcc/testsuite/c-c++-common/cpp/embed-3.c 2024-09-13 10:13:14.831620615 +0200 @@ -53,20 +53,20 @@ /* { dg-error "unbalanced '\\\)'" "" { target *-*-* } .-1 } */ /* { dg-error "unbalanced '\\\['" "" { target *-*-* } .-2 } */ /* { dg-error "unbalanced '\\\('" "" { target *-*-* } .-3 } */ -#embed limit(1) /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ +#embed limit(1) /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ #define FOO 1 -#embed __FILE__ limit(0 + defined(FOO)) /* { dg-error "'defined' in #embed parameter" } */ -#embed /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ +#embed __FILE__ limit(0 + defined(FOO)) /* { dg-error "'defined' in '#embed' parameter" } */ +#embed /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ #embed " /* { dg-warning "missing terminating \\\" character" "" { target *-*-* } .-1 } */ - /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" "" { target *-*-* } .-2 } */ + /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" "" { target *-*-* } .-2 } */ #embed < /* { dg-error "empty filename in #embed" "" { target *-*-* } .-1 } */ -/* { dg-error "missing terminating > character" "" { target *-*-* } .-2 } */ -#embed > /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ +/* { dg-error "missing terminating '>' character" "" { target *-*-* } .-2 } */ +#embed > /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ #embed "" /* { dg-error "empty filename in #embed" } */ #embed <> /* { dg-error "empty filename in #embed" } */ -#embed embed-4.c /* { dg-error "#embed expects \\\"FILENAME\\\" or <FILENAME>" } */ +#embed embed-4.c /* { dg-error "'#embed' expects '\\\"FILENAME\\\"' or '<FILENAME>'" } */ #embed __FILE__ foo: /* { dg-error "expected parameter name" } */ /* { dg-error "unknown embed parameter 'foo'" "" { target *-*-* } .-1 } */ #embed __FILE__ bar:: /* { dg-error "expected parameter name" } */ --- gcc/testsuite/c-c++-common/cpp/embed-4.c.jj 2024-09-12 23:12:54.031424116 +0200 +++ gcc/testsuite/c-c++-common/cpp/embed-4.c 2024-09-13 10:49:02.502992675 +0200 @@ -2,7 +2,7 @@ /* { dg-options "" } */ #if 1 + __has_embed (__FILE__ , limit(1)) /* { dg-error "expected parameter name" } */ -/* { dg-error "missing binary operator before token \\\"limit\\\"" "" { target *-*-* } .-1 } */ +/* { dg-error "missing binary operator before token 'limit'" "" { target *-*-* } .-1 } */ #endif #if 1 + __has_embed (__FILE__ limit(1) /* { dg-error "expected '\\\)'" } */ #endif @@ -81,35 +81,35 @@ /* { dg-error "expected '\\\)'" "" { target *-*-* } .-3 } */ #endif #define FOO 1 -#if 1 + __has_embed (limit(1)) /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ -/* { dg-error "missing binary operator before token \\\"1\\\"" "" { target *-*-* } .-1 } */ +#if 1 + __has_embed (limit(1)) /* { dg-error "operator '__has_embed' requires a header-name" } */ +/* { dg-error "missing binary operator before token '1'" "" { target *-*-* } .-1 } */ #endif -#if 1 + __has_embed (__FILE__ limit(0 + defined(FOO))) /* { dg-error "'defined' in #embed parameter" } */ +#if 1 + __has_embed (__FILE__ limit(0 + defined(FOO))) /* { dg-error "'defined' in '#embed' parameter" } */ #endif -int a = __has_embed (__FILE__); /* { dg-error "\\\"__has_embed\\\" used outside of preprocessing directive" } */ -#if __has_embed /* { dg-error "missing '\\\(' before \\\"__has_embed\\\" operand" } */ -/* { dg-error "operator \\\"__has_embed\\\" requires a header-name" "" { target *-*-* } .-1 } */ +int a = __has_embed (__FILE__); /* { dg-error "'__has_embed' used outside of preprocessing directive" } */ +#if __has_embed /* { dg-error "missing '\\\(' before '__has_embed' operand" } */ +/* { dg-error "operator '__has_embed' requires a header-name" "" { target *-*-* } .-1 } */ #endif -#if __has_embed( /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ +#if __has_embed( /* { dg-error "operator '__has_embed' requires a header-name" } */ #endif -#if __has_embed() /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ +#if __has_embed() /* { dg-error "operator '__has_embed' requires a header-name" } */ #endif #if __has_embed(") /* { dg-warning "missing terminating \\\" character" "" { target *-*-* } .-1 } */ -/* { dg-error "operator \\\"__has_embed\\\" requires a header-name" "" { target *-*-* } .-2 } */ +/* { dg-error "operator '__has_embed' requires a header-name" "" { target *-*-* } .-2 } */ #endif #if __has_embed(<) -/* { dg-error "missing terminating > character" "" { target *-*-* } .-1 } */ +/* { dg-error "missing terminating '>' character" "" { target *-*-* } .-1 } */ /* { dg-error "expected '\\\)'" "" { target *-*-* } .-2 } */ #endif -#if __has_embed(>) /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ +#if __has_embed(>) /* { dg-error "operator '__has_embed' requires a header-name" } */ #endif #if __has_embed("") /* { dg-error "empty filename in '__has_embed'" } */ #endif #if __has_embed(<>) /* { dg-error "empty filename in '__has_embed'" } */ #endif -#if __has_embed(embed-4.c) /* { dg-error "operator \\\"__has_embed\\\" requires a header-name" } */ -/* { dg-error "missing binary operator before token \\\"4.c\\\"" "" { target *-*-* } .-1 } */ +#if __has_embed(embed-4.c) /* { dg-error "operator '__has_embed' requires a header-name" } */ +/* { dg-error "missing binary operator before token '4.c'" "" { target *-*-* } .-1 } */ #endif #if __has_embed(__FILE__ foo:) /* { dg-error "expected parameter name" } */ /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ @@ -120,10 +120,10 @@ int a = __has_embed (__FILE__); /* { dg- /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ #endif #if __has_embed(__FILE__ foo:bar) /* { dg-error "expected parameter name" } */ -/* { dg-error "missing binary operator before token \\\"bar\\\"" "" { target *-*-* } .-1 } */ +/* { dg-error "missing binary operator before token 'bar'" "" { target *-*-* } .-1 } */ #endif #if __has_embed(__FILE__ foo::bar::baz) /* { dg-error "expected parameter name" } */ -/* { dg-error "missing binary operator before token \\\"baz\\\"" "" { target *-*-* } .-1 } */ +/* { dg-error "missing binary operator before token 'baz'" "" { target *-*-* } .-1 } */ #endif #if __has_embed(__FILE__ foo : : bar) /* { dg-error "expected parameter name" } */ /* { dg-error "':' without preceding '\\\?'" "" { target *-*-* } .-1 } */ @@ -132,7 +132,7 @@ int a = __has_embed (__FILE__); /* { dg- /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ #endif #if __has_embed(__FILE__ 42::foo) /* { dg-error "expected parameter name" } */ -/* { dg-error "token \\\"::\\\" is not valid in preprocessor expressions" "" { target *-*-* } .-1 } */ +/* { dg-error "token '::' is not valid in preprocessor expressions" "" { target *-*-* } .-1 } */ #endif #if __has_embed(__FILE__ foo::42) /* { dg-error "expected parameter name" } */ /* { dg-error "missing '\\\(' in expression" "" { target *-*-* } .-1 } */ --- gcc/testsuite/c-c++-common/cpp/embed-16.c.jj 2024-09-12 23:12:54.031424116 +0200 +++ gcc/testsuite/c-c++-common/cpp/embed-16.c 2024-09-13 10:10:29.141909066 +0200 @@ -6,7 +6,7 @@ #embed __FILE__ gnu::offset (1 / 0) /* { dg-error "division by zero in #embed" } */ #embed __FILE__ __gnu__::__offset__ (+ + +) /* { dg-error "operator '\\\+' has no right operand" } */ #define FOO 1 -#embed __FILE__ gnu::offset(0 + defined(FOO)) /* { dg-error "'defined' in #embed parameter" } */ +#embed __FILE__ gnu::offset(0 + defined(FOO)) /* { dg-error "'defined' in '#embed' parameter" } */ #embed __FILE__ gnu::offset (-1) /* { dg-error "negative embed parameter operand" } */ #embed __FILE__ gnu::offset (-42) /* { dg-error "negative embed parameter operand" } */ #embed __FILE__ gnu::offset (-9223372036854775807 - 1) /* { dg-error "negative embed parameter operand" } */ @@ -19,7 +19,7 @@ #endif #if 1 + __has_embed (__FILE__ gnu::offset(+ + +)) /* { dg-error "operator '\\\+' has no right operand" } */ #endif -#if 1 + __has_embed (__FILE__ gnu::offset(0 + defined(FOO))) /* { dg-error "'defined' in #embed parameter" } */ +#if 1 + __has_embed (__FILE__ gnu::offset(0 + defined(FOO))) /* { dg-error "'defined' in '#embed' parameter" } */ #endif #if 1 + __has_embed (__FILE__ gnu::offset (-1)) /* { dg-error "negative embed parameter operand" } */ #endif --- gcc/testsuite/c-c++-common/cpp/embed-18.c.jj 2024-09-12 23:12:54.031424116 +0200 +++ gcc/testsuite/c-c++-common/cpp/embed-18.c 2024-09-13 10:11:07.860374297 +0200 @@ -23,9 +23,9 @@ #embed "." gnu::base64("\u{53}\u{41}\u{3d}\u{00003d}") /* { dg-error "'gnu::base64' argument not valid base64 encoded string" } */ #embed "." gnu::base64("\U00000053\U00000041\U0000003d\U0000003d") /* { dg-error "'gnu::base64' argument not valid base64 encoded string" } */ #embed "." gnu::base64("\N{LATIN CAPITAL LETTER S}\N{LATIN CAPITAL LETTER A}\N{LATIN CAPITAL LETTER A}\N{LATIN CAPITAL LETTER A}") /* { dg-error "'gnu::base64' argument not valid base64 encoded string" } */ -#embed "embed-18.c" gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with \\\".\\\"" } */ -#embed <embed-18.c> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with \\\".\\\"" } */ -#embed <.> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with \\\".\\\"" } */ +#embed "embed-18.c" gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with '\\\".\\\"'" } */ +#embed <embed-18.c> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with '\\\".\\\"'" } */ +#embed <.> gnu::base64("SA==") /* { dg-error "'gnu::base64' parameter can be only used with '\\\".\\\"'" } */ #embed "." gnu::base64("SA==") limit(3) /* { dg-error "'gnu::base64' parameter conflicts with 'limit' or 'gnu::offset' parameters" } */ #embed "." gnu::base64("SA==") gnu::offset(1) /* { dg-error "'gnu::base64' parameter conflicts with 'limit' or 'gnu::offset' parameters" } */ #if 1 + __has_embed ("." gnu::base64("") __gnu__::__base64__("")) /* { dg-error "duplicate embed parameter 'gnu::base64'" } */ --- gcc/testsuite/c-c++-common/cpp/eof-2.c.jj 2020-10-20 22:47:02.236213355 +0200 +++ gcc/testsuite/c-c++-common/cpp/eof-2.c 2024-09-13 09:57:17.569855397 +0200 @@ -5,4 +5,4 @@ #define f(x) x #include "eof-2.h" - /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro "f"\n} } */ + /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro 'f'\n} } */ --- gcc/testsuite/c-c++-common/cpp/eof-3.c.jj 2020-10-20 22:47:02.236213355 +0200 +++ gcc/testsuite/c-c++-common/cpp/eof-3.c 2024-09-13 09:57:23.151778204 +0200 @@ -3,6 +3,6 @@ /* { dg-do preprocess } */ /* { dg-additional-options "-include $srcdir/c-c++-common/cpp/eof-2.h" } */ - /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro "f"\n} } */ + /* { dg-regexp {[^\n]*eof-2.h:4:21: error: unterminated argument list invoking macro 'f'\n} } */ token ) --- gcc/testsuite/c-c++-common/cpp/fmax-include-depth.c.jj 2024-07-31 21:47:22.675998687 +0200 +++ gcc/testsuite/c-c++-common/cpp/fmax-include-depth.c 2024-09-13 09:21:07.874848936 +0200 @@ -1,4 +1,4 @@ /* { dg-do preprocess } */ /* { dg-options "-fmax-include-depth=1" } */ -#include "fmax-include-depth-1b.h" /* { dg-error ".include nested depth 1 exceeds maximum of 1 .use -fmax-include-depth=DEPTH to increase the maximum." } */ +#include "fmax-include-depth-1b.h" /* { dg-error "'#include' nested depth 1 exceeds maximum of 1 \\\(use '-fmax-include-depth=DEPTH' to increase the maximum\\\)" } */ --- gcc/testsuite/c-c++-common/cpp/has-builtin.c.jj 2020-01-14 20:02:46.649611841 +0100 +++ gcc/testsuite/c-c++-common/cpp/has-builtin.c 2024-09-13 09:22:09.596992352 +0200 @@ -6,44 +6,44 @@ # error "__has_builtin is not defined" #endif -#if __has_builtin // { dg-error "missing '\\\(' after \"__has_builtin\"" } +#if __has_builtin // { dg-error "missing '\\\(' after '__has_builtin'" } #endif -#if __has_builtin ( // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin ( // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin () // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin () // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin (1) // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin (1) // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin (1, 2) // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin (1, 2) // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin (1 + 2) // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin (1 + 2) // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin (x, y) // { dg-error "expected '\\\)' after \"x\"" } */ +#if __has_builtin (x, y) // { dg-error "expected '\\\)' after 'x'" } */ #endif -#if __has_builtin (x + 1) // { dg-error "expected '\\\)' after \"x\"" } */ +#if __has_builtin (x + 1) // { dg-error "expected '\\\)' after 'x'" } */ #endif -#if __has_builtin (p->i) // { dg-error "expected '\\\)' after \"p\"" } */ +#if __has_builtin (p->i) // { dg-error "expected '\\\)' after 'p'" } */ #endif -#if __has_builtin ((x)) // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin ((x)) // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin ((y) // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin ((y) // { dg-error "macro '__has_builtin' requires an identifier" } #endif -#if __has_builtin ((((z) // { dg-error "macro \"__has_builtin\" requires an identifier" } +#if __has_builtin ((((z) // { dg-error "macro '__has_builtin' requires an identifier" } #endif #if __has_builtin (x))) // { dg-error "missing '\\\('" }" #endif -#if __has_builtin (f ()) // { dg-error "expected '\\\)' after \"f\"" }" +#if __has_builtin (f ()) // { dg-error "expected '\\\)' after 'f'" }" #endif --- gcc/testsuite/c-c++-common/cpp/line-2.c.jj 2023-06-26 09:27:04.358366387 +0200 +++ gcc/testsuite/c-c++-common/cpp/line-2.c 2024-09-13 09:58:32.071825072 +0200 @@ -8,4 +8,4 @@ int line4; // { dg-regexp {In file included from <command-line>:\n[^\n]*/line-2.h:4:2: error: #error wrong\n} } -// { dg-regexp {[^\n]*/line-2.c:3:11: error: macro "bill" passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro "bill" defined here\n} } +// { dg-regexp {[^\n]*/line-2.c:3:11: error: macro 'bill' passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro 'bill' defined here\n} } --- gcc/testsuite/c-c++-common/cpp/line-3.c.jj 2023-06-26 09:27:04.358366387 +0200 +++ gcc/testsuite/c-c++-common/cpp/line-3.c 2024-09-13 09:59:07.959328765 +0200 @@ -15,6 +15,6 @@ int line4; // { dg-regexp {In file included from <command-line>:\n[^\n]*/line-2.h:4:2: error: #error wrong\n} } -// { dg-regexp {[^\n]*/line-3.c:3:11: error: macro "bill" passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro "bill" defined here\n} } +// { dg-regexp {[^\n]*/line-3.c:3:11: error: macro 'bill' passed 1 arguments, but takes just 0\n[^\n]*/line-2.h:3:9: note: macro 'bill' defined here\n} } // { dg-options "-fpreprocessed -fdirectives-only" } --- gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c.jj 2023-06-26 09:27:04.358366387 +0200 +++ gcc/testsuite/c-c++-common/cpp/macro-arg-count-1.c 2024-09-13 09:59:59.641614027 +0200 @@ -4,7 +4,7 @@ void test_1 () { MACRO_1(42); /* { dg-line "use_of_MACRO_1" } */ - /* { dg-error "macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target *-*-* } use_of_MACRO_1 } */ + /* { dg-error "macro 'MACRO_1' requires 2 arguments, but only 1 given" "" { target *-*-* } use_of_MACRO_1 } */ /* { dg-begin-multiline-output "" } MACRO_1(42); ^ @@ -28,7 +28,7 @@ void test_1 () void test_2 () { MACRO_2(1, 2, 3); /* { dg-line "use_of_MACRO_2" } */ - /* { dg-error "macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target *-*-* } use_of_MACRO_2 } */ + /* { dg-error "macro 'MACRO_2' passed 3 arguments, but takes just 2" "" { target *-*-* } use_of_MACRO_2 } */ /* { dg-begin-multiline-output "" } MACRO_2(1, 2, 3); ^ --- gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c.jj 2020-01-14 20:02:46.649611841 +0100 +++ gcc/testsuite/c-c++-common/cpp/macro-arg-count-2.c 2024-09-13 10:00:41.600033763 +0200 @@ -4,8 +4,8 @@ void test_1 () { MACRO_1(42); /* { dg-line "use_of_MACRO_1" } */ - /* { dg-error "-:macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target c } use_of_MACRO_1 } */ - /* { dg-error "macro \"MACRO_1\" requires 2 arguments, but only 1 given" "" { target c++ } use_of_MACRO_1 } */ + /* { dg-error "-:macro 'MACRO_1' requires 2 arguments, but only 1 given" "" { target c } use_of_MACRO_1 } */ + /* { dg-error "macro 'MACRO_1' requires 2 arguments, but only 1 given" "" { target c++ } use_of_MACRO_1 } */ /* { dg-message "-: macro .MACRO_1. defined here" "" { target *-*-* } def_of_MACRO_1 } */ /* { dg-error "'MACRO_1' was not declared in this scope" "" { target c++ } use_of_MACRO_1 } */ /* { dg-bogus "had not yet been defined" "" { target *-*-* } use_of_MACRO_1 } */ @@ -15,8 +15,8 @@ void test_1 () void test_2 () { MACRO_2(1, 2, 3); /* { dg-line "use_of_MACRO_2" } */ - /* { dg-error "-:macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target c } use_of_MACRO_2 } */ - /* { dg-error "macro \"MACRO_2\" passed 3 arguments, but takes just 2" "" { target c++ } use_of_MACRO_2 } */ + /* { dg-error "-:macro 'MACRO_2' passed 3 arguments, but takes just 2" "" { target c } use_of_MACRO_2 } */ + /* { dg-error "macro 'MACRO_2' passed 3 arguments, but takes just 2" "" { target c++ } use_of_MACRO_2 } */ /* { dg-message "-: macro .MACRO_2. defined here" "" { target *-*-* } def_of_MACRO_2 } */ /* { dg-error "'MACRO_2' was not declared in this scope" "" { target c++ } use_of_MACRO_2 } */ /* { dg-bogus "had not yet been defined" "" { target *-*-* } use_of_MACRO_2 } */ --- gcc/testsuite/c-c++-common/cpp/macro-ranges.c.jj 2023-06-26 09:27:04.358366387 +0200 +++ gcc/testsuite/c-c++-common/cpp/macro-ranges.c 2024-09-13 10:02:02.960908579 +0200 @@ -4,13 +4,13 @@ /* Verify that we output range information for diagnostics involving macro definitions. */ -#undef __TIME__ /* { dg-warning {undefining "__TIME__"} } */ +#undef __TIME__ /* { dg-warning {undefining '__TIME__'} } */ /* { dg-begin-multiline-output "" } #undef __TIME__ ^~~~~~~~ /* { dg-end-multiline-output "" } */ -#define XYZ 123 /* { dg-warning {macro "XYZ" is not used} } */ +#define XYZ 123 /* { dg-warning {macro 'XYZ' is not used} } */ /* { dg-begin-multiline-output "" } #define XYZ 123 ^~~ @@ -19,7 +19,7 @@ #define MACRO initial_definition /* { dg-line def_line } */ /* This locus is output first for the unused warning... */ -/* { dg-warning {macro "MACRO" is not used} "" { target *-*-* } def_line } */ +/* { dg-warning {macro 'MACRO' is not used} "" { target *-*-* } def_line } */ /* { dg-begin-multiline-output "" } #define MACRO initial_definition ^~~~~ @@ -32,20 +32,20 @@ ^~~~~ /* { dg-end-multiline-output "" } */ -#define MACRO /* { dg-warning {"MACRO" redefined} } */ +#define MACRO /* { dg-warning {'MACRO' redefined} } */ /* { dg-begin-multiline-output "" } #define MACRO ^~~~~ { dg-end-multiline-output "" } */ -#define MACRO2(x,y) x /* { dg-note {macro "MACRO2" defined here} } */ +#define MACRO2(x,y) x /* { dg-note {macro 'MACRO2' defined here} } */ /* { dg-begin-multiline-output "" } #define MACRO2(x,y) ^~~~~~ { dg-end-multiline-output "" } */ MACRO2(MACRO, MACRO) -MACRO2(MACRO) /* { dg-error {macro "MACRO2" requires 2 arguments, but only 1 given} } */ +MACRO2(MACRO) /* { dg-error {macro 'MACRO2' requires 2 arguments, but only 1 given} } */ /* { dg-begin-multiline-output "" } MACRO2(MACRO) ^ --- gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-4.c.jj 2022-08-27 23:01:28.319565957 +0200 +++ gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-4.c 2024-09-13 09:24:42.386871955 +0200 @@ -9,52 +9,52 @@ typedef __CHAR32_TYPE__ char32_t; #endif const char32_t *a = U"\N{ZERO WIDTH NO BREAK SPACE}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{ZERO WIDTH NO-BREAK SPACE\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{ZERO WIDTH NO-BREAK SPACE\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *b = U"\N{giraffe face}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{GIRAFFE FACE\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{GIRAFFE FACE\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *c = U"\N{Giraffe Face}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{GIRAFFE FACE\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{GIRAFFE FACE\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *d = U"\N{ GiRaFfE_fAcE__ ___}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{GIRAFFE FACE\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{GIRAFFE FACE\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *e = U"\N{GIRAFFE}"; /* { dg-error "is not a valid universal character" } */ const char32_t *f = U"\N{Hangul_Syllable_gAgg_}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *g = U"\N{HANGUL SYLLABLE gagg}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *h = U"\N{HANGULSYLLABLEGAGG}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *i = U"\N{HANGUL_SYLLABLE_GAGG}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL SYLLABLE GAGG\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL SYLLABLE GAGG\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *j = U"\N{HANGUL SYLLABLE }"; /* { dg-error "is not a valid universal character" } */ const char32_t *k = U"\N{CJK-COMPATIBILITY-IDEOGRAPH-2F801}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *l = U"\N{CjK_COMPATIBILITY IDEOGRAPH 2f801}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{CJK COMPATIBILITY IDEOGRAPH-2F801\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *m = U"\N{CjK_COMPATIBILITY IDEOGRAPH 2f80}"; /* { dg-error "is not a valid universal character" } */ const char32_t *n = U"\N{CJK COMPATIBILITY IDEOGRAPH-}"; /* { dg-error "is not a valid universal character" } */ const char32_t *o = U"\N{CJK COMPATIBILITY IDEOGRAPH-X}"; /* { dg-error "is not a valid universal character" } */ const char32_t *p = U"\N{Tibetan Letter A}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER A\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER A\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *q = U"\N{Tibetan LetterA}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER A\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER A\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *r = U"\N{Tibetan Letter-A}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER A\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER A\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *s = U"\N{Tibetan Letter -A}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER -A\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER -A\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *t = U"\N{TibetanLetter -A}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{TIBETAN LETTER -A\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{TIBETAN LETTER -A\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *u = U"\N{Hangul Jungseong oe}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG OE\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG OE\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *v = U"\N{Hangul Jungseong o- e}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *w = U"\N{HangulJungseongo-e}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *x = U"\N{Hangul Jungseong oe __ }"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG OE\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG OE\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *y = U"\N{Hangul Jungseong o- e __ }"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *z = U"\N{Hangul Jungseong o -e}"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *A = U"\N{Hangul Jungseong o -e __ }"; /* { dg-error "is not a valid universal character" } */ - /* { dg-message "did you mean \\\\N\\{HANGUL JUNGSEONG O-E\\}\\?" "" { target *-*-* } .-1 } */ + /* { dg-message "did you mean '\\\\N\\{HANGUL JUNGSEONG O-E\\}'\\?" "" { target *-*-* } .-1 } */ const char32_t *B = U"\N{O}"; /* { dg-error "is not a valid universal character" } */ --- gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-5.c.jj 2022-09-07 22:49:17.682000693 +0200 +++ gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-5.c 2024-09-13 09:26:33.932323932 +0200 @@ -10,8 +10,8 @@ int b = a\N{}); /* { dg-warning "empt int c = a\N{); /* { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{; treating it as separate tokens" } */ int d = a\N); int e = a\NARG); -int f = a\N{abc}); /* { dg-warning "\\\\N\\\{abc\\\} is not a valid universal character; treating it as separate tokens" } */ +int f = a\N{abc}); /* { dg-warning "'\\\\N\\\{abc\\\}' is not a valid universal character; treating it as separate tokens" } */ int g = a\N{ABC.123}); /* { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{ABC; treating it as separate tokens" } */ -int h = a\N{NON-EXISTENT CHAR}); /* { dg-warning "\\\\N\\\{NON-EXISTENT CHAR\\\} is not a valid universal character; treating it as separate tokens" } */ -int i = a\N{Latin_Small_Letter_A_With_Acute}); /* { dg-warning "\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\} is not a valid universal character; treating it as separate tokens" } */ - /* { dg-message "did you mean \\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}\\?" "" { target *-*-* } .-1 } */ +int h = a\N{NON-EXISTENT CHAR}); /* { dg-warning "'\\\\N\\\{NON-EXISTENT CHAR\\\}' is not a valid universal character; treating it as separate tokens" } */ +int i = a\N{Latin_Small_Letter_A_With_Acute}); /* { dg-warning "'\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\}' is not a valid universal character; treating it as separate tokens" } */ + /* { dg-message "did you mean '\\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}'\\?" "" { target *-*-* } .-1 } */ --- gcc/testsuite/c-c++-common/cpp/pr88974.c.jj 2020-02-04 23:03:46.354221933 +0100 +++ gcc/testsuite/c-c++-common/cpp/pr88974.c 2024-09-13 10:02:34.580471291 +0200 @@ -2,6 +2,6 @@ /* { dg-do preprocess } */ #if __has_include (<pr88974.h) -/* { dg-error "missing terminating > character" "" { target *-*-* } .-1 } */ -/* { dg-error "missing '\\\)' after .__has_include. operand" "" { target *-*-* } .-2 } */ +/* { dg-error "missing terminating '>' character" "" { target *-*-* } .-1 } */ +/* { dg-error "missing '\\\)' after '__has_include' operand" "" { target *-*-* } .-2 } */ #endif --- gcc/testsuite/c-c++-common/cpp/va-opt-error.c.jj 2020-01-14 20:02:46.649611841 +0100 +++ gcc/testsuite/c-c++-common/cpp/va-opt-error.c 2024-09-13 10:13:45.145201935 +0200 @@ -2,11 +2,11 @@ /* { dg-options "-std=gnu99" { target c } } */ /* { dg-options "-std=c++2a" { target c++ } } */ -#define ERR1(x) __VA_OPT__ /* { dg-warning "__VA_OPT__ can only appear" } */ +#define ERR1(x) __VA_OPT__ /* { dg-warning "'__VA_OPT__' can only appear" } */ #define ERR2(x) __VA_OPT__( /* { dg-warning "can only appear" } */ #define ERR3(x) __VA_OPT__() /* { dg-warning "can only appear" } */ -#define ERR4(x,...) __VA_OPT__ /* { dg-error "unterminated __VA_OPT__" } */ +#define ERR4(x,...) __VA_OPT__ /* { dg-error "unterminated '__VA_OPT__'" } */ #define ERR5(x,...) __VA_OPT__( /* { dg-error "unterminated" } */ #define ERR6(x,...) __VA_OPT__(() /* { dg-error "unterminated" } */ --- gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c.jj 2020-01-14 20:02:46.649611841 +0100 +++ gcc/testsuite/c-c++-common/cpp/va-opt-pedantic.c 2024-09-13 10:14:04.422935674 +0200 @@ -2,4 +2,4 @@ /* { dg-options "-std=c11 -pedantic-errors" { target c } } */ /* { dg-options "-std=c++17 -pedantic-errors" { target c++ } } */ -#define CALL(F, ...) F (7 __VA_OPT__(,) __VA_ARGS__) /* { dg-error "__VA_OPT__ is not available" } */ +#define CALL(F, ...) F (7 __VA_OPT__(,) __VA_ARGS__) /* { dg-error "'__VA_OPT__' is not available" } */ --- gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-1.c 2024-09-13 10:08:32.580520316 +0200 @@ -4,40 +4,40 @@ // { dg-options "-finput-charset=UTF-8 -Winvalid-utf8" } // a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } -// a�a { dg-warning "invalid UTF-8 character <80>" } -// a�a { dg-warning "invalid UTF-8 character <bf>" } -// a�a { dg-warning "invalid UTF-8 character <c0>" } -// a�a { dg-warning "invalid UTF-8 character <c1>" } -// a�a { dg-warning "invalid UTF-8 character <f5>" } -// a�a { dg-warning "invalid UTF-8 character <ff>" } -// a�a { dg-warning "invalid UTF-8 character <c2>" } -// a�a { dg-warning "invalid UTF-8 character <e0>" } -// a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" } -// a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" } -// a��a { dg-warning "invalid UTF-8 character <e0><bf>" } -// a��a { dg-warning "invalid UTF-8 character <ec><80>" } -// a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" } -// a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" } -// a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } -// a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" } -// a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } -// { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } +// a�a { dg-warning "invalid UTF-8 character '<80>'" } +// a�a { dg-warning "invalid UTF-8 character '<bf>'" } +// a�a { dg-warning "invalid UTF-8 character '<c0>'" } +// a�a { dg-warning "invalid UTF-8 character '<c1>'" } +// a�a { dg-warning "invalid UTF-8 character '<f5>'" } +// a�a { dg-warning "invalid UTF-8 character '<ff>'" } +// a�a { dg-warning "invalid UTF-8 character '<c2>'" } +// a�a { dg-warning "invalid UTF-8 character '<e0>'" } +// a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } +// a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } +// a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" } +// a��a { dg-warning "invalid UTF-8 character '<ec><80>'" } +// a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } +// a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } +// a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } +// a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } +// a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } +// { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } /* a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } */ -/* a�a { dg-warning "invalid UTF-8 character <80>" } */ -/* a�a { dg-warning "invalid UTF-8 character <bf>" } */ -/* a�a { dg-warning "invalid UTF-8 character <c0>" } */ -/* a�a { dg-warning "invalid UTF-8 character <c1>" } */ -/* a�a { dg-warning "invalid UTF-8 character <f5>" } */ -/* a�a { dg-warning "invalid UTF-8 character <ff>" } */ -/* a�a { dg-warning "invalid UTF-8 character <c2>" } */ -/* a�a { dg-warning "invalid UTF-8 character <e0>" } */ -/* a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" } */ -/* a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" } */ -/* a��a { dg-warning "invalid UTF-8 character <e0><bf>" } */ -/* a��a { dg-warning "invalid UTF-8 character <ec><80>" } */ -/* a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" } */ -/* a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" } */ -/* a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } */ -/* a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" } */ -/* a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } */ -/* { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } */ +/* a�a { dg-warning "invalid UTF-8 character '<80>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<bf>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<c0>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<c1>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<f5>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<ff>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<c2>'" } */ +/* a�a { dg-warning "invalid UTF-8 character '<e0>'" } */ +/* a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } */ +/* a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } */ +/* a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" } */ +/* a��a { dg-warning "invalid UTF-8 character '<ec><80>'" } */ +/* a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } */ +/* a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } */ +/* a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } */ +/* a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } */ +/* a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } */ +/* { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } */ --- gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-2.c 2024-09-13 10:09:09.274012870 +0200 @@ -11,78 +11,78 @@ typedef __CHAR16_TYPE__ char16_t; typedef __CHAR32_TYPE__ char32_t; #endif -char32_t a = U'�'; // { dg-warning "invalid UTF-8 character <80>" } -char32_t b = U'�'; // { dg-warning "invalid UTF-8 character <bf>" } -char32_t c = U'�'; // { dg-warning "invalid UTF-8 character <c0>" } -char32_t d = U'�'; // { dg-warning "invalid UTF-8 character <c1>" } -char32_t e = U'�'; // { dg-warning "invalid UTF-8 character <f5>" } -char32_t f = U'�'; // { dg-warning "invalid UTF-8 character <ff>" } -char32_t g = U'�'; // { dg-warning "invalid UTF-8 character <c2>" } -char32_t h = U'�'; // { dg-warning "invalid UTF-8 character <e0>" } -char32_t i = U'���'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } -char32_t j = U'���'; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } -char32_t k = U'��'; // { dg-warning "invalid UTF-8 character <e0><bf>" } -char32_t l = U'��'; // { dg-warning "invalid UTF-8 character <ec><80>" } -char32_t m = U'���'; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } -char32_t n = U'����'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } -char32_t o = U'����'; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } -char32_t p = U'����'; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } -char32_t q = U'������'; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } +char32_t a = U'�'; // { dg-warning "invalid UTF-8 character '<80>'" } +char32_t b = U'�'; // { dg-warning "invalid UTF-8 character '<bf>'" } +char32_t c = U'�'; // { dg-warning "invalid UTF-8 character '<c0>'" } +char32_t d = U'�'; // { dg-warning "invalid UTF-8 character '<c1>'" } +char32_t e = U'�'; // { dg-warning "invalid UTF-8 character '<f5>'" } +char32_t f = U'�'; // { dg-warning "invalid UTF-8 character '<ff>'" } +char32_t g = U'�'; // { dg-warning "invalid UTF-8 character '<c2>'" } +char32_t h = U'�'; // { dg-warning "invalid UTF-8 character '<e0>'" } +char32_t i = U'���'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } +char32_t j = U'���'; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } +char32_t k = U'��'; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } +char32_t l = U'��'; // { dg-warning "invalid UTF-8 character '<ec><80>'" } +char32_t m = U'���'; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } +char32_t n = U'����'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } +char32_t o = U'����'; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } +char32_t p = U'����'; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } +char32_t q = U'������'; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } const char32_t *A = U"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -const char32_t *B = U"�"; // { dg-warning "invalid UTF-8 character <80>" } -const char32_t *C = U"�"; // { dg-warning "invalid UTF-8 character <bf>" } -const char32_t *D = U"�"; // { dg-warning "invalid UTF-8 character <c0>" } -const char32_t *E = U"�"; // { dg-warning "invalid UTF-8 character <c1>" } -const char32_t *F = U"�"; // { dg-warning "invalid UTF-8 character <f5>" } -const char32_t *G = U"�"; // { dg-warning "invalid UTF-8 character <ff>" } -const char32_t *H = U"�"; // { dg-warning "invalid UTF-8 character <c2>" } -const char32_t *I = U"�"; // { dg-warning "invalid UTF-8 character <e0>" } -const char32_t *J = U"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } -const char32_t *K = U"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } -const char32_t *L = U"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" } -const char32_t *M = U"��"; // { dg-warning "invalid UTF-8 character <ec><80>" } -const char32_t *N = U"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } -const char32_t *O = U"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } -const char32_t *P = U"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } -const char32_t *Q = U"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } -const char32_t *R = U"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } +const char32_t *B = U"�"; // { dg-warning "invalid UTF-8 character '<80>'" } +const char32_t *C = U"�"; // { dg-warning "invalid UTF-8 character '<bf>'" } +const char32_t *D = U"�"; // { dg-warning "invalid UTF-8 character '<c0>'" } +const char32_t *E = U"�"; // { dg-warning "invalid UTF-8 character '<c1>'" } +const char32_t *F = U"�"; // { dg-warning "invalid UTF-8 character '<f5>'" } +const char32_t *G = U"�"; // { dg-warning "invalid UTF-8 character '<ff>'" } +const char32_t *H = U"�"; // { dg-warning "invalid UTF-8 character '<c2>'" } +const char32_t *I = U"�"; // { dg-warning "invalid UTF-8 character '<e0>'" } +const char32_t *J = U"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } +const char32_t *K = U"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } +const char32_t *L = U"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } +const char32_t *M = U"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" } +const char32_t *N = U"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } +const char32_t *O = U"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } +const char32_t *P = U"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } +const char32_t *Q = U"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } +const char32_t *R = U"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } const char32_t *A1 = UR"(߿ࠀ𐀀)"; // { dg-bogus "invalid UTF-8 character" } -const char32_t *B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <80>" } -const char32_t *C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <bf>" } -const char32_t *D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c0>" } -const char32_t *E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c1>" } -const char32_t *F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <f5>" } -const char32_t *G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <ff>" } -const char32_t *H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c2>" } -const char32_t *I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <e0>" } -const char32_t *J1 = UR"(??�)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } -const char32_t *K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } -const char32_t *L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <e0><bf>" } -const char32_t *M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <ec><80>" } -const char32_t *N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } -const char32_t *O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } -const char32_t *P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } -const char32_t *Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } -const char32_t *R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } +const char32_t *B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<80>'" } +const char32_t *C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<bf>'" } +const char32_t *D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c0>'" } +const char32_t *E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c1>'" } +const char32_t *F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<f5>'" } +const char32_t *G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<ff>'" } +const char32_t *H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c2>'" } +const char32_t *I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<e0>'" } +const char32_t *J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } +const char32_t *K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } +const char32_t *L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } +const char32_t *M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<ec><80>'" } +const char32_t *N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } +const char32_t *O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } +const char32_t *P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } +const char32_t *Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } +const char32_t *R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } const char *A2 = u8"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -const char *B2 = u8"�"; // { dg-warning "invalid UTF-8 character <80>" } -const char *C2 = u8"�"; // { dg-warning "invalid UTF-8 character <bf>" } -const char *D2 = u8"�"; // { dg-warning "invalid UTF-8 character <c0>" } -const char *E2 = u8"�"; // { dg-warning "invalid UTF-8 character <c1>" } -const char *F2 = u8"�"; // { dg-warning "invalid UTF-8 character <f5>" } -const char *G2 = u8"�"; // { dg-warning "invalid UTF-8 character <ff>" } -const char *H2 = u8"�"; // { dg-warning "invalid UTF-8 character <c2>" } -const char *I2 = u8"�"; // { dg-warning "invalid UTF-8 character <e0>" } -const char *J2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" } -const char *K2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" } -const char *L2 = u8"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" } -const char *M2 = u8"��"; // { dg-warning "invalid UTF-8 character <ec><80>" } -const char *N2 = u8"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" } -const char *O2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } -const char *P2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } -const char *Q2 = u8"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" } -const char *R2 = u8"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" } - // { dg-warning "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } +const char *B2 = u8"�"; // { dg-warning "invalid UTF-8 character '<80>'" } +const char *C2 = u8"�"; // { dg-warning "invalid UTF-8 character '<bf>'" } +const char *D2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c0>'" } +const char *E2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c1>'" } +const char *F2 = u8"�"; // { dg-warning "invalid UTF-8 character '<f5>'" } +const char *G2 = u8"�"; // { dg-warning "invalid UTF-8 character '<ff>'" } +const char *H2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c2>'" } +const char *I2 = u8"�"; // { dg-warning "invalid UTF-8 character '<e0>'" } +const char *J2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } +const char *K2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } +const char *L2 = u8"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" } +const char *M2 = u8"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" } +const char *N2 = u8"��?"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } +const char *O2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } +const char *P2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } +const char *Q2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" } +const char *R2 = u8"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } --- gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/c-c++-common/cpp/Winvalid-utf8-3.c 2024-09-13 10:09:24.901796747 +0200 @@ -6,22 +6,22 @@ #define I(x) I(߿ࠀ𐀀) // { dg-bogus "invalid UTF-8 character" } // { dg-error "is not valid in an identifier" "" { target c++ } .-1 } -I(�) // { dg-warning "invalid UTF-8 character <80>" } -I(�) // { dg-warning "invalid UTF-8 character <bf>" } -I(�) // { dg-warning "invalid UTF-8 character <c0>" } -I(�) // { dg-warning "invalid UTF-8 character <c1>" } -I(�) // { dg-warning "invalid UTF-8 character <f5>" } -I(�) // { dg-warning "invalid UTF-8 character <ff>" } -I(�) // { dg-warning "invalid UTF-8 character <c2>" } -I(�) // { dg-warning "invalid UTF-8 character <e0>" } -I(���) // { dg-warning "invalid UTF-8 character <e0><80><bf>" } -I(���) // { dg-warning "invalid UTF-8 character <e0><9f><80>" } -I(��) // { dg-warning "invalid UTF-8 character <e0><bf>" } -I(��) // { dg-warning "invalid UTF-8 character <ec><80>" } -I(���) // { dg-warning "invalid UTF-8 character <ed><a0><80>" } -I(����) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" } -I(����) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" } -I(����) // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c } } +I(�) // { dg-warning "invalid UTF-8 character '<80>'" } +I(�) // { dg-warning "invalid UTF-8 character '<bf>'" } +I(�) // { dg-warning "invalid UTF-8 character '<c0>'" } +I(�) // { dg-warning "invalid UTF-8 character '<c1>'" } +I(�) // { dg-warning "invalid UTF-8 character '<f5>'" } +I(�) // { dg-warning "invalid UTF-8 character '<ff>'" } +I(�) // { dg-warning "invalid UTF-8 character '<c2>'" } +I(�) // { dg-warning "invalid UTF-8 character '<e0>'" } +I(���) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } +I(���) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } +I(��) // { dg-warning "invalid UTF-8 character '<e0><bf>'" } +I(��) // { dg-warning "invalid UTF-8 character '<ec><80>'" } +I(���) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } +I(����) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } +I(����) // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" } +I(����) // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c } } // { dg-error "is not valid in an identifier" "" { target c++ } .-1 } -I(������) // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c } } +I(������) // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c } } // { dg-error "is not valid in an identifier" "" { target c++ } .-1 } --- gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c.jj 2023-03-27 22:36:52.329403025 +0200 +++ gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-1.c 2024-09-13 10:14:54.567243094 +0200 @@ -16,8 +16,8 @@ { dg-final { scan-sarif-file "\"level\": \"warning\"" } } { dg-final { scan-sarif-file "\"ruleId\": \"-Winvalid-utf8\"" } } { dg-final { scan-sarif-file "\"message\": " } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <98>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <99>"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<98>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<99>'"} } } */ --- gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c.jj 2023-03-27 22:36:52.329403025 +0200 +++ gcc/testsuite/c-c++-common/diagnostic-format-sarif-file-bad-utf8-pr109098-3.c 2024-09-13 10:15:36.210667932 +0200 @@ -54,42 +54,42 @@ { dg-final { scan-sarif-file "\"level\": \"warning\"" } } { dg-final { scan-sarif-file "\"ruleId\": \"-Winvalid-utf8\"" } } { dg-final { scan-sarif-file "\"message\": " } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c0>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c1>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f5>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ff>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c2>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><80><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><9f><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ec><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ed><a0><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><80><80><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><8f><bf><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f4><90><80><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <fd><bf><bf><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c0>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c1>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f5>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ff>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <c2>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><80><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><9f><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <e0><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ec><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <ed><a0><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><80><80><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f0><8f><bf><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <f4><90><80><80>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <fd><bf><bf><bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } - { dg-final { scan-sarif-file {"text": "invalid UTF-8 character <bf>"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c0>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c1>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f5>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ff>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c2>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><80><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><9f><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ec><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ed><a0><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><80><80><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><8f><bf><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f4><90><80><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<fd><bf><bf><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c0>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c1>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f5>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ff>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<c2>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><80><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><9f><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<e0><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ec><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<ed><a0><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><80><80><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f0><8f><bf><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<f4><90><80><80>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<fd><bf><bf><bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } + { dg-final { scan-sarif-file {"text": "invalid UTF-8 character '<bf>'"} } } */ --- gcc/testsuite/c-c++-common/pr68833-3.c.jj 2020-01-14 20:02:46.668611556 +0100 +++ gcc/testsuite/c-c++-common/pr68833-3.c 2024-09-13 10:20:26.529658154 +0200 @@ -2,6 +2,6 @@ /* { dg-do preprocess } */ /* { dg-options "-Werror=normalized" } */ -\u0F43 // { dg-error "`.U00000f43' is not in NFC .-Werror=normalized=." } +\u0F43 // { dg-error "'.U00000f43' is not in NFC .-Werror=normalized=." } /* { dg-prune-output "treated as errors" } */ --- gcc/testsuite/c-c++-common/raw-string-directive-1.c.jj 2022-11-05 20:51:33.396159443 +0100 +++ gcc/testsuite/c-c++-common/raw-string-directive-1.c 2024-09-13 11:04:41.242185607 +0200 @@ -32,19 +32,19 @@ line12 )" #if R"(line 13 /* { dg-error "line13" } */ -file:35:1: error: line14)" /* { dg-error "line14\\)\"\" is not valid" } */ -#endif R"(line 15 /* { dg-warning "extra tokens at end of #endif" } */ +file:35:1: error: line14)" +#endif R"(line 15 /* { dg-warning "extra tokens at end of '#endif'" } */ \ line16)" "" -#ifdef XYZ R"(line17 /* { dg-warning "extra tokens at end of #ifdef" } */ +#ifdef XYZ R"(line17 /* { dg-warning "extra tokens at end of '#ifdef'" } */ \ \ line18)" #endif #if 1 -#else R"(line23 /* { dg-warning "extra tokens at end of #else" } */ +#else R"(line23 /* { dg-warning "extra tokens at end of '#else'" } */ \ line24)" @@ -52,7 +52,7 @@ line24)" #if 0 #elif R"(line 25 /* { dg-error "line25" } */ -file:55:1: error: line26)" /* { dg-error "line26\\)\"\" is not valid" } */ +file:55:1: error: line26)" #endif #line 60 R"(file:60:1: warning: this file has a space @@ -61,13 +61,13 @@ in it!)" /* { dg-warning "this file has a space" "#line check" { target *-*-* } 60 } */ #line 63 "file" -#undef X1 R"(line28 /* { dg-warning "extra tokens at end of #undef" } */ +#undef X1 R"(line28 /* { dg-warning "extra tokens at end of '#undef'" } */ line29 \ )" #ident R"(line30 -line31)" R"(line 32 /* { dg-warning "extra tokens at end of #ident" } */ +line31)" R"(line 32 /* { dg-warning "extra tokens at end of '#ident'" } */ line 33)" #pragma GCC diagnostic ignored R"(-Woption /* { dg-warning "-Wpragmas" } */ --- gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c.jj 2022-11-17 22:10:05.811657288 +0100 +++ gcc/testsuite/gcc.dg/analyzer/named-constants-Wunused-macros.c 2024-09-13 09:14:54.198038830 +0200 @@ -7,9 +7,9 @@ /* Various constants used by the fd state machine. */ -#define O_ACCMODE 42 /* { dg-warning "-: macro \"O_ACCMODE\" is not used" } */ -#define O_RDONLY 0x1 /* { dg-warning "-: macro \"O_RDONLY\" is not used" } */ -#define O_WRONLY 010 /* { dg-warning "-: macro \"O_WRONLY\" is not used" } */ +#define O_ACCMODE 42 /* { dg-warning "-: macro 'O_ACCMODE' is not used" } */ +#define O_RDONLY 0x1 /* { dg-warning "-: macro 'O_RDONLY' is not used" } */ +#define O_WRONLY 010 /* { dg-warning "-: macro 'O_WRONLY' is not used" } */ void test_sm_fd_constants (void) { --- gcc/testsuite/gcc.dg/binary-constants-4.c.jj 2020-01-14 20:02:47.225603213 +0100 +++ gcc/testsuite/gcc.dg/binary-constants-4.c 2024-09-13 11:36:25.100157383 +0200 @@ -11,8 +11,8 @@ foo(void) int i; d = 0b1101; - d = 0b1101p1; /* { dg-error "invalid suffix \"p1\" on integer constant" } */ + d = 0b1101p1; /* { dg-error "invalid suffix 'p1' on integer constant" } */ d = 0x1101p1; - i = 0b3011; /* { dg-error "invalid suffix \"b3011\" on integer constant" } */ - i = 0b113; /* { dg-error "invalid digit \"3\" in binary constant" } */ + i = 0b3011; /* { dg-error "invalid suffix 'b3011' on integer constant" } */ + i = 0b113; /* { dg-error "invalid digit '3' in binary constant" } */ } --- gcc/testsuite/gcc.dg/builtin-redefine.c.jj 2023-06-26 09:27:04.362366331 +0200 +++ gcc/testsuite/gcc.dg/builtin-redefine.c 2024-09-13 10:19:53.097119913 +0200 @@ -27,7 +27,7 @@ #define __TIME__ "X" /* Define while undefined. */ #define __TIME__ "X" /* Re-define while defined. */ /* { dg-line time_prev } */ -#define __TIME__ "Y" /* { dg-warning "\"__TIME__\" redefined" } */ +#define __TIME__ "Y" /* { dg-warning "'__TIME__' redefined" } */ /* { dg-message "previous definition" "" { target *-*-* } time_prev } */ #undef __TIME__ /* Undefine while defined. */ @@ -38,7 +38,7 @@ #define __DATE__ "X" /* Define while undefined. */ #define __DATE__ "X" /* Re-define while defined. */ /* { dg-line date_prev } */ -#define __DATE__ "Y" /* { dg-warning "\"__DATE__\" redefined" } */ +#define __DATE__ "Y" /* { dg-warning "'__DATE__' redefined" } */ /* { dg-message "previous definition" "" { target *-*-* } date_prev } */ #undef __DATE__ /* Undefine while defined. */ @@ -47,7 +47,7 @@ #define __TIMESTAMP__ "X" /* Define while already defined. */ #define __TIMESTAMP__ "X" /* Re-define while defined. */ /* { dg-line timestamp_prev } */ -#define __TIMESTAMP__ "Y" /* { dg-warning "\"__TIMESTAMP__\" redefined" } */ +#define __TIMESTAMP__ "Y" /* { dg-warning "'__TIMESTAMP__' redefined" } */ /* { dg-message "previous definition" "" { target *-*-* } timestamp_prev } */ #undef __TIMESTAMP__ /* Undefine while defined. */ @@ -71,9 +71,9 @@ /* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } .-1 } */ #endif -#define __LINE__ 0 /* { dg-warning "\"__LINE__\" redef" } */ -#define __INCLUDE_LEVEL__ 0 /* { dg-warning "\"__INCLUDE_LEVEL__\" redef" } */ -#define __COUNTER__ 0 /* { dg-warning "\"__COUNTER__\" redef" } */ +#define __LINE__ 0 /* { dg-warning "'__LINE__' redef" } */ +#define __INCLUDE_LEVEL__ 0 /* { dg-warning "'__INCLUDE_LEVEL__' redef" } */ +#define __COUNTER__ 0 /* { dg-warning "'__COUNTER__' redef" } */ int unused; /* Silence `ISO C forbids an empty translation unit' warning. */ --- gcc/testsuite/gcc.dg/cpp/19951025-1.c.jj 2020-01-14 20:02:47.250602839 +0100 +++ gcc/testsuite/gcc.dg/cpp/19951025-1.c 2024-09-13 09:15:40.657393073 +0200 @@ -1,4 +1,4 @@ /* { dg-do preprocess } */ -/* { dg-error "include expects" "include" { target *-*-* } .+2 } */ +/* { dg-error "'#include' expects" "include" { target *-*-* } .+2 } */ /* { dg-error "newline at end" "newline" { target *-*-* } .+1 } */ #include /\ --- gcc/testsuite/gcc.dg/cpp/c11-warning-1.c.jj 2023-11-07 23:15:16.676412791 +0100 +++ gcc/testsuite/gcc.dg/cpp/c11-warning-1.c 2024-09-13 09:16:12.268953690 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=c11 -pedantic-errors" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-error "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ +/* { dg-error "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/c11-warning-2.c.jj 2023-11-07 23:15:16.676412791 +0100 +++ gcc/testsuite/gcc.dg/cpp/c11-warning-2.c 2024-09-13 09:16:26.440756713 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=c11 -pedantic" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-warning "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ +/* { dg-warning "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/c11-warning-3.c.jj 2023-11-07 23:15:16.676412791 +0100 +++ gcc/testsuite/gcc.dg/cpp/c11-warning-3.c 2024-09-13 09:16:40.989554490 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=c11 -Wc11-c23-compat" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c.jj 2023-11-08 23:04:12.263052031 +0100 +++ gcc/testsuite/gcc.dg/cpp/c23-elifdef-2.c 2024-09-13 09:28:39.447584387 +0200 @@ -5,53 +5,53 @@ #define A #undef B -#elifdef A /* { dg-error "#elifdef without #if" } */ -#elifdef B /* { dg-error "#elifdef without #if" } */ -#elifndef A /* { dg-error "#elifndef without #if" } */ -#elifndef B /* { dg-error "#elifndef without #if" } */ +#elifdef A /* { dg-error "'#elifdef' without '#if'" } */ +#elifdef B /* { dg-error "'#elifdef' without '#if'" } */ +#elifndef A /* { dg-error "'#elifndef' without '#if'" } */ +#elifndef B /* { dg-error "'#elifndef' without '#if'" } */ #if 1 /* { dg-error "-:began here" } */ #else -#elifdef A /* { dg-error "#elifdef after #else" } */ +#elifdef A /* { dg-error "'#elifdef' after '#else'" } */ #endif #if 1 /* { dg-error "-:began here" } */ #else -#elifdef B /* { dg-error "#elifdef after #else" } */ +#elifdef B /* { dg-error "'#elifdef' after '#else'" } */ #endif #if 1 /* { dg-error "-:began here" } */ #else -#elifndef A /* { dg-error "#elifndef after #else" } */ +#elifndef A /* { dg-error "'#elifndef' after '#else'" } */ #endif #if 1 /* { dg-error "-:began here" } */ #else -#elifndef B /* { dg-error "#elifndef after #else" } */ +#elifndef B /* { dg-error "'#elifndef' after '#else'" } */ #endif #if 0 -#elifdef A = /* { dg-error "extra tokens at end of #elifdef directive" } */ +#elifdef A = /* { dg-error "extra tokens at end of '#elifdef' directive" } */ #endif #if 0 -#elifdef B = /* { dg-error "extra tokens at end of #elifdef directive" } */ +#elifdef B = /* { dg-error "extra tokens at end of '#elifdef' directive" } */ #endif #if 0 -#elifndef A = /* { dg-error "extra tokens at end of #elifndef directive" } */ +#elifndef A = /* { dg-error "extra tokens at end of '#elifndef' directive" } */ #endif #if 0 -#elifndef B = /* { dg-error "extra tokens at end of #elifndef directive" } */ +#elifndef B = /* { dg-error "extra tokens at end of '#elifndef' directive" } */ #endif #if 0 -#elifdef /* { dg-error "no macro name given in #elifdef directive" } */ +#elifdef /* { dg-error "no macro name given in '#elifdef' directive" } */ #endif #if 0 -#elifndef /* { dg-error "no macro name given in #elifndef directive" } */ +#elifndef /* { dg-error "no macro name given in '#elifndef' directive" } */ #endif #if 0 --- gcc/testsuite/gcc.dg/cpp/c23-warning-2.c.jj 2023-11-08 23:04:12.263052031 +0100 +++ gcc/testsuite/gcc.dg/cpp/c23-warning-2.c 2024-09-13 09:17:09.058164353 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=c23 -pedantic-errors -Wc11-c23-compat" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/embed-2.c.jj 2024-09-12 23:12:54.032424102 +0200 +++ gcc/testsuite/gcc.dg/cpp/embed-2.c 2024-09-13 09:29:05.961216955 +0200 @@ -6,7 +6,7 @@ #endif int a = -#embed __FILE__ limit (1) /* { dg-error "#embed before C23 is a GCC extension" } */ +#embed __FILE__ limit (1) /* { dg-error "'#embed' before C23 is a GCC extension" } */ ; int b = (__extension__ --- gcc/testsuite/gcc.dg/cpp/embed-3.c.jj 2024-09-12 23:12:54.033424088 +0200 +++ gcc/testsuite/gcc.dg/cpp/embed-3.c 2024-09-13 09:29:23.330976243 +0200 @@ -6,7 +6,7 @@ #endif int a = -#embed __FILE__ limit (1) /* { dg-warning "#embed before C23 is a GCC extension" } */ +#embed __FILE__ limit (1) /* { dg-warning "'#embed' before C23 is a GCC extension" } */ ; int b = (__extension__ --- gcc/testsuite/gcc.dg/cpp/embed-4.c.jj 2024-09-12 23:12:54.033424088 +0200 +++ gcc/testsuite/gcc.dg/cpp/embed-4.c 2024-09-13 09:30:18.055217866 +0200 @@ -4,10 +4,10 @@ #if __has_embed(__FILE__ limit(6)) #endif /* { dg-error "-:'__has_embed' not supported in traditional C" "" { target *-*-* } .-2 } */ -/* { dg-error "-:missing binary operator before token \\\"\\\(\\\"" "" { target *-*-* } .-3 } */ +/* { dg-error "-:missing binary operator before token '\\\('" "" { target *-*-* } .-3 } */ #define FOO 20000,20001,20002 #define BAR 30000,30001,30002 #embed __FILE__ limit (4) prefix(10000,10001,10002+) suffix(+10003,10004,10005) -/* { dg-error "-:#embed not supported in traditional C" "" { target *-*-* } .-1 } */ +/* { dg-error "-:'#embed' not supported in traditional C" "" { target *-*-* } .-1 } */ #embed __FILE__ limit (6) prefix(FOO,) suffix(,BAR) -/* { dg-error "-:#embed not supported in traditional C" "" { target *-*-* } .-1 } */ +/* { dg-error "-:'#embed' not supported in traditional C" "" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/expr.c.jj 2023-11-28 23:02:11.787089470 +0100 +++ gcc/testsuite/gcc.dg/cpp/expr.c 2024-09-13 09:30:50.835763588 +0200 @@ -9,27 +9,27 @@ /* Neil Booth, 19 Jul 2002. */ -#if (1 ? -2: 0 + 1U) < 0 /* { dg-warning {the left operand of ":" changes sign} } */ +#if (1 ? -2: 0 + 1U) < 0 /* { dg-warning {the left operand of ':' changes sign} } */ #error /* { dg-bogus "error" } */ #endif -#if (0 ? 0 + 1U: -2) < 0 /* { dg-warning {the right operand of ":" changes sign} } */ +#if (0 ? 0 + 1U: -2) < 0 /* { dg-warning {the right operand of ':' changes sign} } */ #error /* { dg-bogus "error" } */ #endif /* PR preprocessor/112701 */ -#if (0 ? 0/0u : -1) < 0 /* { dg-warning {the right operand of ":" changes sign} } */ +#if (0 ? 0/0u : -1) < 0 /* { dg-warning {the right operand of ':' changes sign} } */ #error /* { dg-bogus "error" } */ #endif -#if (0 ? 0u/0 : -1) < 0 /* { dg-warning {the right operand of ":" changes sign} } */ +#if (0 ? 0u/0 : -1) < 0 /* { dg-warning {the right operand of ':' changes sign} } */ #error /* { dg-bogus "error" } */ #endif -#if (1 ? -1 : 0/0u) < 0 /* { dg-warning {the left operand of ":" changes sign} } */ +#if (1 ? -1 : 0/0u) < 0 /* { dg-warning {the left operand of ':' changes sign} } */ #error /* { dg-bogus "error" } */ #endif -#if (1 ? -1 : 0u/0) < 0 /* { dg-warning {the left operand of ":" changes sign} } */ +#if (1 ? -1 : 0u/0) < 0 /* { dg-warning {the left operand of ':' changes sign} } */ #error /* { dg-bogus "error" } */ #endif --- gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c.jj 2021-10-07 23:03:44.118934628 +0200 +++ gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-2.c 2024-09-13 09:32:47.910141161 +0200 @@ -5,53 +5,53 @@ #define A #undef B -#elifdef A /* { dg-error "#elifdef without #if" } */ -#elifdef B /* { dg-error "#elifdef without #if" } */ -#elifndef A /* { dg-error "#elifndef without #if" } */ -#elifndef B /* { dg-error "#elifndef without #if" } */ +#elifdef A /* { dg-error "'#elifdef' without '#if'" } */ +#elifdef B /* { dg-error "'#elifdef' without '#if'" } */ +#elifndef A /* { dg-error "'#elifndef' without '#if'" } */ +#elifndef B /* { dg-error "'#elifndef' without '#if'" } */ #if 1 /* { dg-error "-:began here" } */ #else -#elifdef A /* { dg-error "#elifdef after #else" } */ +#elifdef A /* { dg-error "'#elifdef' after '#else'" } */ #endif #if 1 /* { dg-error "-:began here" } */ #else -#elifdef B /* { dg-error "#elifdef after #else" } */ +#elifdef B /* { dg-error "'#elifdef' after '#else'" } */ #endif #if 1 /* { dg-error "-:began here" } */ #else -#elifndef A /* { dg-error "#elifndef after #else" } */ +#elifndef A /* { dg-error "'#elifndef' after '#else'" } */ #endif #if 1 /* { dg-error "-:began here" } */ #else -#elifndef B /* { dg-error "#elifndef after #else" } */ +#elifndef B /* { dg-error "'#elifndef' after '#else'" } */ #endif #if 0 -#elifdef A = /* { dg-warning "extra tokens at end of #elifdef directive" } */ +#elifdef A = /* { dg-warning "extra tokens at end of '#elifdef' directive" } */ #endif #if 0 -#elifdef B = /* { dg-warning "extra tokens at end of #elifdef directive" } */ +#elifdef B = /* { dg-warning "extra tokens at end of '#elifdef' directive" } */ #endif #if 0 -#elifndef A = /* { dg-warning "extra tokens at end of #elifndef directive" } */ +#elifndef A = /* { dg-warning "extra tokens at end of '#elifndef' directive" } */ #endif #if 0 -#elifndef B = /* { dg-warning "extra tokens at end of #elifndef directive" } */ +#elifndef B = /* { dg-warning "extra tokens at end of '#elifndef' directive" } */ #endif #if 0 -#elifdef /* { dg-error "no macro name given in #elifdef directive" } */ +#elifdef /* { dg-error "no macro name given in '#elifdef' directive" } */ #endif #if 0 -#elifndef /* { dg-error "no macro name given in #elifndef directive" } */ +#elifndef /* { dg-error "no macro name given in '#elifndef' directive" } */ #endif #if 0 --- gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c.jj 2023-11-07 23:15:16.676412791 +0100 +++ gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-3.c 2024-09-13 09:33:40.750408891 +0200 @@ -6,7 +6,7 @@ #undef B #if 0 -#elifdef A /* { dg-warning "#elifdef before C23 is a GCC extension" } */ +#elifdef A /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ #define M1 1 #endif @@ -25,7 +25,7 @@ #endif #if 0 -#elifndef B /* { dg-warning "#elifndef before C23 is a GCC extension" } */ +#elifndef B /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ #define M2 2 #endif @@ -34,32 +34,32 @@ #endif #if 0 -#elifdef A /* { dg-warning "#elifdef before C23 is a GCC extension" } */ +#elifdef A /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ #else #error "#elifdef A did not apply" #endif #if 0 -#elifndef B /* { dg-warning "#elifndef before C23 is a GCC extension" } */ +#elifndef B /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ #else #error "#elifndef B did not apply" #endif #if 1 -#elifdef A /* { dg-warning "#elifdef before C23 is a GCC extension" } */ +#elifdef A /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ #endif #if 1 -#elifndef B /* { dg-warning "#elifndef before C23 is a GCC extension" } */ +#elifndef B /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ #endif /* As with #elif, the syntax of the new directives is relaxed after a non-skipped group. */ #if 1 -#elifdef x * y /* { dg-warning "#elifdef before C23 is a GCC extension" } */ +#elifdef x * y /* { dg-warning "'#elifdef' before C23 is a GCC extension" } */ #endif #if 1 -#elifndef ! /* { dg-warning "#elifndef before C23 is a GCC extension" } */ +#elifndef ! /* { dg-warning "'#elifndef' before C23 is a GCC extension" } */ #endif --- gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c.jj 2023-11-07 23:15:16.676412791 +0100 +++ gcc/testsuite/gcc.dg/cpp/gnu11-elifdef-4.c 2024-09-13 09:34:33.057684009 +0200 @@ -6,7 +6,7 @@ #undef B #if 0 -#elifdef A /* { dg-error "#elifdef before C23 is a GCC extension" } */ +#elifdef A /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ #define M1 1 #endif @@ -25,7 +25,7 @@ #endif #if 0 -#elifndef B /* { dg-error "#elifndef before C23 is a GCC extension" } */ +#elifndef B /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ #define M2 2 #endif @@ -34,32 +34,32 @@ #endif #if 0 -#elifdef A /* { dg-error "#elifdef before C23 is a GCC extension" } */ +#elifdef A /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ #else #error "#elifdef A did not apply" #endif #if 0 -#elifndef B /* { dg-error "#elifndef before C23 is a GCC extension" } */ +#elifndef B /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ #else #error "#elifndef B did not apply" #endif #if 1 -#elifdef A /* { dg-error "#elifdef before C23 is a GCC extension" } */ +#elifdef A /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ #endif #if 1 -#elifndef B /* { dg-error "#elifndef before C23 is a GCC extension" } */ +#elifndef B /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ #endif /* As with #elif, the syntax of the new directives is relaxed after a non-skipped group. */ #if 1 -#elifdef x * y /* { dg-error "#elifdef before C23 is a GCC extension" } */ +#elifdef x * y /* { dg-error "'#elifdef' before C23 is a GCC extension" } */ #endif #if 1 -#elifndef ! /* { dg-error "#elifndef before C23 is a GCC extension" } */ +#elifndef ! /* { dg-error "'#elifndef' before C23 is a GCC extension" } */ #endif --- gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c.jj 2023-11-07 23:15:16.676412791 +0100 +++ gcc/testsuite/gcc.dg/cpp/gnu11-warning-1.c 2024-09-13 10:03:13.504932987 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=gnu11 -pedantic-errors" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-error "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ +/* { dg-error "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c.jj 2023-11-07 23:15:16.677412777 +0100 +++ gcc/testsuite/gcc.dg/cpp/gnu11-warning-2.c 2024-09-13 10:03:23.260798068 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=gnu11 -pedantic" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-warning "#warning before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ +/* { dg-warning "'#warning' before C23 is a GCC extension" "pedantic" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c.jj 2023-11-07 23:15:16.677412777 +0100 +++ gcc/testsuite/gcc.dg/cpp/gnu11-warning-3.c 2024-09-13 10:03:33.458657039 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=gnu11 -Wc11-c23-compat" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c.jj 2023-11-08 23:04:12.263052031 +0100 +++ gcc/testsuite/gcc.dg/cpp/gnu23-warning-2.c 2024-09-13 10:03:55.953345947 +0200 @@ -3,4 +3,4 @@ /* { dg-options "-std=gnu23 -pedantic-errors -Wc11-c23-compat" } */ #warning example text /* { dg-warning "example text" } */ -/* { dg-warning "#warning before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ +/* { dg-warning "'#warning' before C23 is a GCC extension" "compat" { target *-*-* } .-1 } */ --- gcc/testsuite/gcc.dg/cpp/include6.c.jj 2020-01-14 20:02:47.256602748 +0100 +++ gcc/testsuite/gcc.dg/cpp/include6.c 2024-09-13 10:04:29.889876620 +0200 @@ -3,12 +3,12 @@ #include <stddef.h> #include "stddef.h" -#include L"stddef.h" /* { dg-error "include expects" } */ -#include u"stddef.h" /* { dg-error "include expects" } */ -#include U"stddef.h" /* { dg-error "include expects" } */ -#include u8"stddef.h" /* { dg-error "include expects" } */ -#include R"(stddef.h)" /* { dg-error "include expects" } */ -#include LR"(stddef.h)" /* { dg-error "include expects" } */ -#include uR"(stddef.h)" /* { dg-error "include expects" } */ -#include UR"(stddef.h)" /* { dg-error "include expects" } */ -#include u8R"(stddef.h)" /* { dg-error "include expects" } */ +#include L"stddef.h" /* { dg-error "'#include' expects" } */ +#include u"stddef.h" /* { dg-error "'#include' expects" } */ +#include U"stddef.h" /* { dg-error "'#include' expects" } */ +#include u8"stddef.h" /* { dg-error "'#include' expects" } */ +#include R"(stddef.h)" /* { dg-error "'#include' expects" } */ +#include LR"(stddef.h)" /* { dg-error "'#include' expects" } */ +#include uR"(stddef.h)" /* { dg-error "'#include' expects" } */ +#include UR"(stddef.h)" /* { dg-error "'#include' expects" } */ +#include u8R"(stddef.h)" /* { dg-error "'#include' expects" } */ --- gcc/testsuite/gcc.dg/cpp/pr35322.c.jj 2020-01-14 20:02:47.259602704 +0100 +++ gcc/testsuite/gcc.dg/cpp/pr35322.c 2024-09-13 09:37:37.032143154 +0200 @@ -1,4 +1,4 @@ /* Test case for PR 35322 -- _Pragma ICE. */ /* { dg-do preprocess } */ -_Pragma("GCC dependency") /* { dg-error "#pragma dependency expects" } */ +_Pragma("GCC dependency") /* { dg-error "'#pragma GCC dependency' expects" } */ --- gcc/testsuite/gcc.dg/cpp/tr-warn6.c.jj 2020-01-14 20:02:47.262602659 +0100 +++ gcc/testsuite/gcc.dg/cpp/tr-warn6.c 2024-09-13 10:05:03.649409740 +0200 @@ -4,15 +4,15 @@ /* { dg-do preprocess } */ /* { dg-options "-Wtraditional" } */ -#define foo1(h) sdf "h3" fds "h" /* { dg-warning "macro argument \"h\" would be stringified" "traditional stringification" } */ -#define foo2(h2) sdf "h2" fds "h3" /* { dg-warning "macro argument \"h2\" would be stringified" "traditional stringification" } */ -#define foo3(h3) sdf "h2" fds "h3" /* { dg-warning "macro argument \"h3\" would be stringified" "traditional stringification" } */ -#define foo4(h) sdf 'h3' fds 'h' /* { dg-warning "macro argument \"h\" would be stringified" "traditional stringification" } */ -#define foo5(h2) sdf 'h2' fds 'h3' /* { dg-warning "macro argument \"h2\" would be stringified" "traditional stringification" } */ -#define foo6(h3) sdf 'h2' fds 'h3' /* { dg-warning "macro argument \"h3\" would be stringified" "traditional stringification" } */ -#define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument \"hello\" would be stringified" "traditional stringification" } */ +#define foo1(h) sdf "h3" fds "h" /* { dg-warning "macro argument 'h' would be stringified" "traditional stringification" } */ +#define foo2(h2) sdf "h2" fds "h3" /* { dg-warning "macro argument 'h2' would be stringified" "traditional stringification" } */ +#define foo3(h3) sdf "h2" fds "h3" /* { dg-warning "macro argument 'h3' would be stringified" "traditional stringification" } */ +#define foo4(h) sdf 'h3' fds 'h' /* { dg-warning "macro argument 'h' would be stringified" "traditional stringification" } */ +#define foo5(h2) sdf 'h2' fds 'h3' /* { dg-warning "macro argument 'h2' would be stringified" "traditional stringification" } */ +#define foo6(h3) sdf 'h2' fds 'h3' /* { dg-warning "macro argument 'h3' would be stringified" "traditional stringification" } */ +#define foo7(AA, hello, world, EEE) sdf "A B hello C,world,DhelloE F" fds EEE /* { dg-warning "macro argument 'hello' would be stringified" "traditional stringification" } */ /* Catch the second warning from the above line. */ -/* { dg-warning "macro argument \"world\" would be stringified" "traditional stringification second warning" { target *-*-* } .-2 } */ +/* { dg-warning "macro argument 'world' would be stringified" "traditional stringification second warning" { target *-*-* } .-2 } */ # 19 "sys-header.h" 3 /* We are in system headers now, no -Wtraditional warnings should issue. */ --- gcc/testsuite/gcc.dg/cpp/undef2.c.jj 2023-06-26 09:27:04.364366303 +0200 +++ gcc/testsuite/gcc.dg/cpp/undef2.c 2024-09-13 09:38:29.270422526 +0200 @@ -3,11 +3,11 @@ /* { dg-do preprocess } */ -#undef __DATE__ /* { dg-warning "undefining \"__DATE__\"" } */ -#undef __TIME__ /* { dg-warning "undefining \"__TIME__\"" } */ -#undef __FILE__ /* { dg-warning "undefining \"__FILE__\"" } */ -#undef __LINE__ /* { dg-warning "undefining \"__LINE__\"" } */ -#undef __STDC__ /* { dg-warning "undefining \"__STDC__\"" } */ +#undef __DATE__ /* { dg-warning "undefining '__DATE__'" } */ +#undef __TIME__ /* { dg-warning "undefining '__TIME__'" } */ +#undef __FILE__ /* { dg-warning "undefining '__FILE__'" } */ +#undef __LINE__ /* { dg-warning "undefining '__LINE__'" } */ +#undef __STDC__ /* { dg-warning "undefining '__STDC__'" } */ /* These should be protected from #undef, but aren't, because they are set with normal #define commands - and on top of that, some --- gcc/testsuite/gcc.dg/cpp/warn-comments.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-comments.c 2024-09-13 10:06:01.869604582 +0200 @@ -1,7 +1,7 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wcomments" } -/* /* */ // { dg-warning "4: \"\.\*\" within comment .-Wcomment." } +/* /* */ // { dg-warning "4: '\.\*\' within comment .-Wcomment." } // \ // { dg-warning "1: multi-line comment .-Wcomment." "multi-line" { target *-*-* } .-1 } --- gcc/testsuite/gcc.dg/cpp/warn-comments-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-comments-2.c 2024-09-13 10:05:30.133043484 +0200 @@ -1,7 +1,7 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=comments" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." } +/* /* */ // { dg-error "'\.\*' within comment .-Werror=comment." } // \ // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } .-1 } --- gcc/testsuite/gcc.dg/cpp/warn-comments-3.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-comments-3.c 2024-09-13 10:05:45.719827927 +0200 @@ -1,7 +1,7 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=comment" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -/* /* */ // { dg-error "\"\.\*\" within comment .-Werror=comment." } +/* /* */ // { dg-error "'\.\*' within comment .-Werror=comment." } // \ // { dg-error "multi-line comment .-Werror=comment." "multi-line" { target *-*-* } .-1 } --- gcc/testsuite/gcc.dg/cpp/warn-cxx-compat.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-cxx-compat.c 2024-09-13 10:06:43.508028740 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wc++-compat" } -#define not ! // { dg-warning "identifier \"not\" is a special operator name in C\\+\\+ .-Wc\\+\\+-compat." } +#define not ! // { dg-warning "identifier 'not' is a special operator name in C\\+\\+ .-Wc\\+\\+-compat." } --- gcc/testsuite/gcc.dg/cpp/warn-cxx-compat-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-cxx-compat-2.c 2024-09-13 10:06:33.433168076 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=c++-compat" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -#define not ! // { dg-error "identifier \"not\" is a special operator name in C\\+\\+ .-Werror=c\\+\\+-compat." } +#define not ! // { dg-error "identifier 'not' is a special operator name in C\\+\\+ .-Werror=c\\+\\+-compat." } --- gcc/testsuite/gcc.dg/cpp/warn-deprecated.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-deprecated.c 2024-09-13 09:17:54.870527587 +0200 @@ -1,7 +1,7 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wdeprecated" } -#assert x(x) // { dg-warning "#assert is a deprecated GCC extension .-Wdeprecated." } +#assert x(x) // { dg-warning "'#assert' is a deprecated GCC extension .-Wdeprecated." } #if #x(x) // { dg-warning "assertions are a deprecated extension .-Wdeprecated." } #endif --- gcc/testsuite/gcc.dg/cpp/warn-deprecated-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-deprecated-2.c 2024-09-13 09:17:36.687780318 +0200 @@ -1,7 +1,7 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=deprecated" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -#assert x(x) // { dg-error "#assert is a deprecated GCC extension .-Werror=deprecated." } +#assert x(x) // { dg-error "'#assert' is a deprecated GCC extension .-Werror=deprecated." } #if #x(x) // { dg-error "assertions are a deprecated extension .-Werror=deprecated." } #endif --- gcc/testsuite/gcc.dg/cpp/warn-long-long.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-long-long.c 2024-09-13 10:49:43.105434975 +0200 @@ -1,6 +1,6 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Wlong-long" } -#if 0LL // { dg-warning "traditional C rejects the \"LL\" suffix .-Wlong-long." } +#if 0LL // { dg-warning "traditional C rejects the 'LL' suffix .-Wlong-long." } // { dg-warning "use of C99 long long integer constant .-Wlong-long." "use long long" { target *-*-* } .-1 } #endif --- gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-long-long-2.c 2024-09-13 10:49:27.879644101 +0200 @@ -1,6 +1,6 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Werror=long-long" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -#if 0LL // { dg-error "traditional C rejects the \"LL\" suffix .-Werror=long-long." } +#if 0LL // { dg-error "traditional C rejects the 'LL' suffix .-Werror=long-long." } // { dg-error "use of C99 long long integer constant .-Werror=long-long." "use long long" { target *-*-* } .-1 } #endif --- gcc/testsuite/gcc.dg/cpp/warn-normalized-1.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-1.c 2024-09-13 09:18:28.026067303 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wnormalized=nfc" } -\u0F43 // { dg-warning "`.U00000f43' is not in NFC .-Wnormalized=." } +\u0F43 // { dg-warning "'.U00000f43' is not in NFC .-Wnormalized=." } --- gcc/testsuite/gcc.dg/cpp/warn-normalized-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-2.c 2024-09-13 09:18:37.504935755 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wnormalized=nfkc" } -\u00AA // { dg-warning "`.U000000aa' is not in NFKC .-Wnormalized=." } +\u00AA // { dg-warning "'.U000000aa' is not in NFKC .-Wnormalized=." } --- gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-3.c 2024-09-13 09:18:49.252772719 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=normalized=nfc" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -\u0F43 // { dg-error "`.U00000f43' is not in NFC .-Werror=normalized=." } +\u0F43 // { dg-error "'.U00000f43' is not in NFC .-Werror=normalized=." } --- gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c.jj 2021-11-01 23:01:30.575702414 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-4-bytes.c 2024-09-13 09:19:28.158232793 +0200 @@ -8,13 +8,13 @@ The UTF-8 encoding of U+0F43 TIBETAN LETTER GHA is: E0 BD 83. */ -foo before_\u0F43_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } +foo before_\u0F43_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } /* { dg-begin-multiline-output "" } foo before_\u0F43_after bar ^~~~~~~~~~~~~~~~~~~ { dg-end-multiline-output "" } */ -foo before_གྷ_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } +foo before_གྷ_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } /* { dg-begin-multiline-output "" } foo before_<e0><bd><83>_after bar ^~~~~~~~~~~~~~~~~~~~~~~~~ --- gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c.jj 2021-11-01 23:01:30.575702414 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-normalized-4-unicode.c 2024-09-13 09:39:04.114941851 +0200 @@ -6,13 +6,13 @@ U+0F42 TIBETAN LETTER GA: ག U+0FB7 TIBETAN SUBJOINED LETTER HA: ྷ */ -foo before_\u0F43_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } +foo before_\u0F43_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } /* { dg-begin-multiline-output "" } foo before_\u0F43_after bar ^~~~~~~~~~~~~~~~~~~ { dg-end-multiline-output "" } */ -foo before_གྷ_after bar // { dg-error "`before_.U00000f43_after' is not in NFC .-Werror=normalized=." } +foo before_གྷ_after bar // { dg-error "'before_.U00000f43_after' is not in NFC .-Werror=normalized=." } /* { dg-begin-multiline-output "" } foo before_<U+0F43>_after bar ^~~~~~~~~~~~~~~~~~~~~ --- gcc/testsuite/gcc.dg/cpp/warn-redefined.c.jj 2023-06-26 09:27:04.364366303 +0200 +++ gcc/testsuite/gcc.dg/cpp/warn-redefined.c 2024-09-13 09:39:52.399275771 +0200 @@ -6,13 +6,13 @@ // { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } .-1 } #endif -#define __TIME__ "X" // { dg-warning "\"__TIME__\" redefined .-Wbuiltin-macro-redefined." } +#define __TIME__ "X" // { dg-warning "'__TIME__' redefined .-Wbuiltin-macro-redefined." } #define __TIME__ "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } - // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } .-1 } + // { dg-warning "'__TIME__' redefined" "not-builtin-1" { target *-*-* } .-1 } // { dg-message "previous definition" "previous-1" { target *-*-* } 9 } #define X "X" #define X "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } - // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } .-1 } + // { dg-warning "'X' redefined" "not-builtin-2" { target *-*-* } .-1 } // { dg-message "previous definition" "previous-2" { target *-*-* } 15 } --- gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c.jj 2023-06-26 09:27:04.364366303 +0200 +++ gcc/testsuite/gcc.dg/cpp/warn-redefined-2.c 2024-09-13 09:39:40.259443242 +0200 @@ -6,13 +6,13 @@ // { dg-bogus "__TIME__ builtin is not defined" "no-time" { target *-*-* } .-1 } #endif -#define __TIME__ "X" // { dg-error "\"__TIME__\" redefined .-Werror=builtin-macro-redefined." } +#define __TIME__ "X" // { dg-error "'__TIME__' redefined .-Werror=builtin-macro-redefined." } #define __TIME__ "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } - // { dg-warning "\"__TIME__\" redefined" "not-builtin-1" { target *-*-* } .-1 } + // { dg-warning "'__TIME__' redefined" "not-builtin-1" { target *-*-* } .-1 } // { dg-message "previous definition" "previous-1" { target *-*-* } 9 } #define X "X" #define X "Y" // { dg-bogus "-Wbuiltin-macro-redefined" } - // { dg-warning "\"X\" redefined" "not-builtin-2" { target *-*-* } .-1 } + // { dg-warning "'X' redefined" "not-builtin-2" { target *-*-* } .-1 } // { dg-message "previous definition" "previous-2" { target *-*-* } 15 } --- gcc/testsuite/gcc.dg/cpp/warn-traditional.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-traditional.c 2024-09-13 09:46:09.893068261 +0200 @@ -1,18 +1,18 @@ // { dg-do compile } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtraditional -Wno-deprecated -Wno-long-long" } -#assert x(x) // { dg-warning "suggest hiding #assert from traditional C with an indented # .-Wtraditional." } +#assert x(x) // { dg-warning "suggest hiding '#assert' from traditional C with an indented '#' .-Wtraditional." } - #define X X // { dg-warning "traditional C ignores #define with the # indented .-Wtraditional." } + #define X X // { dg-warning "traditional C ignores '#define' with the '#' indented .-Wtraditional." } #if 0 -#elif 1 // { dg-warning "suggest not using #elif in traditional C .-Wtraditional." } +#elif 1 // { dg-warning "suggest not using '#elif' in traditional C .-Wtraditional." } #endif #define f(X) X -int f; // { dg-warning "function-like macro \"f\" must be used with arguments in traditional C .-Wtraditional." } +int f; // { dg-warning "function-like macro 'f' must be used with arguments in traditional C .-Wtraditional." } -#if 0U // { dg-warning "traditional C rejects the \"U\" suffix .-Wtraditional." } +#if 0U // { dg-warning "traditional C rejects the 'U' suffix .-Wtraditional." } #endif #if +1 // { dg-warning " traditional C rejects the unary plus operator .-Wtraditional." } --- gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-traditional-2.c 2024-09-13 09:45:22.464722533 +0200 @@ -1,18 +1,18 @@ // { dg-do compile } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=traditional -Wno-deprecated -Wno-long-long" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -#assert x(x) // { dg-error "suggest hiding #assert from traditional C with an indented # .-Werror=traditional." } +#assert x(x) // { dg-error "suggest hiding '#assert' from traditional C with an indented '#' .-Werror=traditional." } - #define X X // { dg-error "traditional C ignores #define with the # indented .-Werror=traditional." } + #define X X // { dg-error "traditional C ignores '#define' with the '#' indented .-Werror=traditional." } #if 0 -#elif 1 // { dg-error "suggest not using #elif in traditional C .-Werror=traditional." } +#elif 1 // { dg-error "suggest not using '#elif' in traditional C .-Werror=traditional." } #endif #define f(X) X -int f; // { dg-error "function-like macro \"f\" must be used with arguments in traditional C .-Werror=traditional." } +int f; // { dg-error "function-like macro 'f' must be used with arguments in traditional C .-Werror=traditional." } -#if 0U // { dg-error "traditional C rejects the \"U\" suffix .-Werror=traditional." } +#if 0U // { dg-error "traditional C rejects the 'U' suffix .-Werror=traditional." } #endif #if +1 // { dg-error " traditional C rejects the unary plus operator .-Werror=traditional." } --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-1.c 2024-09-13 09:46:35.401716367 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -trigraphs -Wtrigraphs" } -??= // { dg-warning "trigraph \\?\\?= converted to # .-Wtrigraphs." } +??= // { dg-warning "trigraph '\\?\\?=' converted to '#' .-Wtrigraphs." } --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-2.c 2024-09-13 09:46:55.318441618 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wtrigraphs" } -??= // { dg-warning "trigraph \\?\\?= ignored, use -trigraphs to enable .-Wtrigraphs." } +??= // { dg-warning "trigraph '\\?\\?=' ignored, use '-trigraphs' to enable .-Wtrigraphs." } --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-3.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-3.c 2024-09-13 09:47:21.814076115 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -trigraphs -Werror=trigraphs" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -??= // { dg-error "trigraph \\?\\?= converted to # .-Werror=trigraphs." } +??= // { dg-error "trigraph '\\?\\?=' converted to '#' .-Werror=trigraphs." } --- gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-trigraphs-4.c 2024-09-13 09:48:12.141381846 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=trigraphs" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -??= // { dg-error "trigraph \\?\\?= ignored, use -trigraphs to enable .-Werror=trigraphs." } +??= // { dg-error "trigraph '\\?\\?=' ignored, use '-trigraphs' to enable .-Werror=trigraphs." } --- gcc/testsuite/gcc.dg/cpp/warn-undef.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-undef.c 2024-09-13 09:52:58.330433881 +0200 @@ -1,5 +1,5 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wundef" } -#if x // { dg-warning "\"x\" is not defined, evaluates to 0 .-Wundef." } +#if x // { dg-warning "'x' is not defined, evaluates to '0' .-Wundef." } #endif --- gcc/testsuite/gcc.dg/cpp/warn-undef-2.c.jj 2020-01-14 20:02:47.265602614 +0100 +++ gcc/testsuite/gcc.dg/cpp/warn-undef-2.c 2024-09-13 09:52:43.430639425 +0200 @@ -1,5 +1,5 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=undef" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -#if x // { dg-error "\"x\" is not defined, evaluates to 0 .-Werror=undef." } +#if x // { dg-error "'x' is not defined, evaluates to '0' .-Werror=undef." } #endif --- gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c.jj 2023-06-26 09:27:04.364366303 +0200 +++ gcc/testsuite/gcc.dg/cpp/warn-unused-macros.c 2024-09-13 10:07:35.701306932 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Wunused-macros" } -#define X X // { dg-warning "9:macro \"X\" is not used .-Wunused-macros." } +#define X X // { dg-warning "9:macro 'X' is not used .-Wunused-macros." } --- gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c.jj 2023-06-26 09:27:04.364366303 +0200 +++ gcc/testsuite/gcc.dg/cpp/warn-unused-macros-2.c 2024-09-13 10:07:22.584488329 +0200 @@ -1,4 +1,4 @@ // { dg-do preprocess } // { dg-options "-std=gnu99 -fdiagnostics-show-option -Werror=unused-macros" } /* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */ -#define X X // { dg-error "9:macro \"X\" is not used .-Werror=unused-macros." } +#define X X // { dg-error "9:macro 'X' is not used .-Werror=unused-macros." } --- gcc/testsuite/gcc.dg/pch/counter-2.c.jj 2020-01-14 20:02:47.335601565 +0100 +++ gcc/testsuite/gcc.dg/pch/counter-2.c 2024-09-13 10:21:41.664620418 +0200 @@ -7,7 +7,7 @@ #error __COUNTER__ != 0 #endif -#include "counter-2.h" /* { dg-warning "not used because `__COUNTER__' is invalid" } */ +#include "counter-2.h" /* { dg-warning "not used because '__COUNTER__' is invalid" } */ /* { dg-error "counter-2.h: No such file or directory" "no such file" { target *-*-* } 0 } */ /* { dg-error "one or more PCH files were found, but they were invalid" "invalid files" { target *-*-* } .-2 } */ /* { dg-message "terminated" "" { target *-*-* } 0 } */ --- gcc/testsuite/g++.dg/cpp0x/udlit-error1.C.jj 2024-06-14 15:18:17.793230368 +0200 +++ gcc/testsuite/g++.dg/cpp0x/udlit-error1.C 2024-09-13 10:39:27.442909364 +0200 @@ -3,7 +3,7 @@ void operator""_x(const char *, decltype(sizeof(0))); -#include ""_x // { dg-error "include expects" } +#include ""_x // { dg-error "'#include' expects" } #line ""_x // { dg-error "not a positive integer" } #if __has_include(""_x) // { dg-error "requires a header-name" } #endif --- gcc/testsuite/g++.dg/cpp23/named-universal-char-escape1.C.jj 2022-09-07 22:49:17.683000679 +0200 +++ gcc/testsuite/g++.dg/cpp23/named-universal-char-escape1.C 2024-09-13 10:25:44.399267858 +0200 @@ -8,9 +8,9 @@ int b = a\N{}); // { dg-warning "empt int c = a\N{); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{; treating it as separate tokens" "" { target c++23 } } int d = a\N); int e = a\NARG); -int f = a\N{abc}); // { dg-warning "\\\\N\\\{abc\\\} is not a valid universal character; treating it as separate tokens" "" { target c++23 } } +int f = a\N{abc}); // { dg-warning "'\\\\N\\\{abc\\\}' is not a valid universal character; treating it as separate tokens" "" { target c++23 } } int g = a\N{ABC.123}); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{ABC; treating it as separate tokens" "" { target c++23 } } int h = a\N{NON-EXISTENT CHAR}); // { dg-error "is not a valid universal character" "" { target c++23 } } // { dg-error "was not declared in this scope" "" { target c++23 } .-1 } -int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\} is not a valid universal character; treating it as separate tokens" "" { target c++23 } } - // { dg-message "did you mean \\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}\\?" "" { target c++23 } .-1 } +int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "'\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\}' is not a valid universal character; treating it as separate tokens" "" { target c++23 } } + // { dg-message "did you mean '\\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}'\\?" "" { target c++23 } .-1 } --- gcc/testsuite/g++.dg/cpp23/named-universal-char-escape2.C.jj 2022-09-07 22:49:17.683000679 +0200 +++ gcc/testsuite/g++.dg/cpp23/named-universal-char-escape2.C 2024-09-13 10:27:43.516623181 +0200 @@ -9,10 +9,10 @@ int b = a\N{}); // { dg-warning "empt int c = a\N{); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{; treating it as separate tokens" } int d = a\N); int e = a\NARG); -int f = a\N{abc}); // { dg-warning "\\\\N\\\{abc\\\} is not a valid universal character; treating it as separate tokens" } +int f = a\N{abc}); // { dg-warning "'\\\\N\\\{abc\\\}' is not a valid universal character; treating it as separate tokens" } int g = a\N{ABC.123}); // { dg-warning "'\\\\N\\\{' not terminated with '\\\}' after \\\\N\\\{ABC; treating it as separate tokens" } int h = a\N{NON-EXISTENT CHAR}); // { dg-error "is not a valid universal character" "" { target c++23 } } // { dg-error "was not declared in this scope" "" { target c++23 } .-1 } - // { dg-warning "\\\\N\\\{NON-EXISTENT CHAR\\\} is not a valid universal character; treating it as separate tokens" "" { target c++20_down } .-2 } -int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\} is not a valid universal character; treating it as separate tokens" } - // { dg-message "did you mean \\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}\\?" "" { target *-*-* } .-1 } + // { dg-warning "'\\\\N\\\{NON-EXISTENT CHAR\\\}' is not a valid universal character; treating it as separate tokens" "" { target c++20_down } .-2 } +int i = a\N{Latin_Small_Letter_A_With_Acute}); // { dg-warning "'\\\\N\\\{Latin_Small_Letter_A_With_Acute\\\}' is not a valid universal character; treating it as separate tokens" } + // { dg-message "did you mean '\\\\N\\\{LATIN SMALL LETTER A WITH ACUTE\\\}'\\?" "" { target *-*-* } .-1 } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-1.C 2024-09-13 10:29:10.065428846 +0200 @@ -4,40 +4,40 @@ // { dg-options "-finput-charset=UTF-8" } // a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } -// a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -// a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -// a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -// a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -// a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -// a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -// a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -// a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -// a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -// a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } -// { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +// a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +// a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +// a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +// a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +// a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +// a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +// a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +// a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +// a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +// a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } +// { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } /* a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } */ -/* a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } */ -/* a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */ -/* a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } */ -/* a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } */ -/* a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } */ -/* a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } */ -/* a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */ -/* a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } */ -/* a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } */ -/* a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } */ -/* { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } */ +/* a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } */ +/* a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */ +/* a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } */ +/* a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } */ +/* a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } */ +/* a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } */ +/* a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */ +/* a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } */ +/* a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } */ +/* a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } */ +/* { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } */ --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-2.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-2.C 2024-09-13 10:29:24.335231933 +0200 @@ -4,40 +4,40 @@ // { dg-options "-finput-charset=UTF-8 -pedantic" } // a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } -// a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -// a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -// a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -// a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -// a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -// a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -// a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -// a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -// a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -// a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -// a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } -// { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +// a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +// a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +// a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +// a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +// a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +// a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +// a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +// a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +// a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +// a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +// a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } +// { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } /* a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } */ -/* a�a { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } */ -/* a�a { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } */ -/* a���a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */ -/* a���a { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } */ -/* a��a { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } */ -/* a��a { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } */ -/* a���a { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } */ -/* a����a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */ -/* a����a { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } */ -/* a����a { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } */ -/* a������a { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } */ -/* { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } */ +/* a�a { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } */ +/* a�a { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } */ +/* a���a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */ +/* a���a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } */ +/* a��a { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } */ +/* a��a { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } */ +/* a���a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } */ +/* a����a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */ +/* a����a { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } */ +/* a����a { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } */ +/* a������a { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } */ +/* { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } */ --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-3.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-3.C 2024-09-13 10:29:41.583993908 +0200 @@ -4,40 +4,40 @@ // { dg-options "-finput-charset=UTF-8 -pedantic-errors" } // a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } -// a�a { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } -// a�a { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } -// a���a { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -// a���a { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -// a��a { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -// a��a { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } -// a���a { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -// a����a { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -// a����a { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -// a����a { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -// a������a { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } -// { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +// a�a { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } +// a�a { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } +// a���a { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +// a���a { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +// a��a { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +// a��a { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +// a���a { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +// a����a { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +// a����a { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +// a����a { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +// a������a { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } +// { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } /* a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } */ -/* a�a { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } */ -/* a�a { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } */ -/* a���a { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */ -/* a���a { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } */ -/* a��a { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } */ -/* a��a { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } */ -/* a���a { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } */ -/* a����a { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */ -/* a����a { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } */ -/* a����a { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } */ -/* a������a { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } */ -/* { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } */ +/* a�a { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } */ +/* a�a { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } */ +/* a���a { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */ +/* a���a { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } */ +/* a��a { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } */ +/* a��a { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } */ +/* a���a { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } */ +/* a����a { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */ +/* a����a { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } */ +/* a����a { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } */ +/* a������a { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } */ +/* { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } */ --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-4.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-4.C 2024-09-13 10:29:57.796770184 +0200 @@ -4,40 +4,40 @@ // { dg-options "-finput-charset=UTF-8 -pedantic-errors -Wno-invalid-utf8" } // a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } -// a�a { dg-bogus "invalid UTF-8 character <80>" } -// a�a { dg-bogus "invalid UTF-8 character <bf>" } -// a�a { dg-bogus "invalid UTF-8 character <c0>" } -// a�a { dg-bogus "invalid UTF-8 character <c1>" } -// a�a { dg-bogus "invalid UTF-8 character <f5>" } -// a�a { dg-bogus "invalid UTF-8 character <ff>" } -// a�a { dg-bogus "invalid UTF-8 character <c2>" } -// a�a { dg-bogus "invalid UTF-8 character <e0>" } -// a���a { dg-bogus "invalid UTF-8 character <e0><80><bf>" } -// a���a { dg-bogus "invalid UTF-8 character <e0><9f><80>" } -// a��a { dg-bogus "invalid UTF-8 character <e0><bf>" } -// a��a { dg-bogus "invalid UTF-8 character <ec><80>" } -// a���a { dg-bogus "invalid UTF-8 character <ed><a0><80>" } -// a����a { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } -// a����a { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" } -// a����a { dg-bogus "invalid UTF-8 character <f4><90><80><80>" } -// a������a { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" } -// { dg-bogus "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } +// a�a { dg-bogus "invalid UTF-8 character '<80>'" } +// a�a { dg-bogus "invalid UTF-8 character '<bf>'" } +// a�a { dg-bogus "invalid UTF-8 character '<c0>'" } +// a�a { dg-bogus "invalid UTF-8 character '<c1>'" } +// a�a { dg-bogus "invalid UTF-8 character '<f5>'" } +// a�a { dg-bogus "invalid UTF-8 character '<ff>'" } +// a�a { dg-bogus "invalid UTF-8 character '<c2>'" } +// a�a { dg-bogus "invalid UTF-8 character '<e0>'" } +// a���a { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } +// a���a { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } +// a��a { dg-bogus "invalid UTF-8 character '<e0><bf>'" } +// a��a { dg-bogus "invalid UTF-8 character '<ec><80>'" } +// a���a { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } +// a����a { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } +// a����a { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" } +// a����a { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" } +// a������a { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" } +// { dg-bogus "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } /* a߿ࠀ𐀀a { dg-bogus "invalid UTF-8 character" } */ -/* a�a { dg-bogus "invalid UTF-8 character <80>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <bf>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <c0>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <c1>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <f5>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <ff>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <c2>" } */ -/* a�a { dg-bogus "invalid UTF-8 character <e0>" } */ -/* a���a { dg-bogus "invalid UTF-8 character <e0><80><bf>" } */ -/* a���a { dg-bogus "invalid UTF-8 character <e0><9f><80>" } */ -/* a��a { dg-bogus "invalid UTF-8 character <e0><bf>" } */ -/* a��a { dg-bogus "invalid UTF-8 character <ec><80>" } */ -/* a���a { dg-bogus "invalid UTF-8 character <ed><a0><80>" } */ -/* a����a { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } */ -/* a����a { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" } */ -/* a����a { dg-bogus "invalid UTF-8 character <f4><90><80><80>" } */ -/* a������a { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" } */ -/* { dg-bogus "invalid UTF-8 character <bf>" "" { target *-*-* } .-1 } */ +/* a�a { dg-bogus "invalid UTF-8 character '<80>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<bf>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<c0>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<c1>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<f5>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<ff>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<c2>'" } */ +/* a�a { dg-bogus "invalid UTF-8 character '<e0>'" } */ +/* a���a { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } */ +/* a���a { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } */ +/* a��a { dg-bogus "invalid UTF-8 character '<e0><bf>'" } */ +/* a��a { dg-bogus "invalid UTF-8 character '<ec><80>'" } */ +/* a���a { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } */ +/* a����a { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } */ +/* a����a { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" } */ +/* a����a { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" } */ +/* a������a { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" } */ +/* { dg-bogus "invalid UTF-8 character '<bf>'" "" { target *-*-* } .-1 } */ --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-5.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-5.C 2024-09-13 10:30:15.259529205 +0200 @@ -3,78 +3,78 @@ // { dg-do preprocess { target c++11 } } // { dg-options "-finput-charset=UTF-8" } -char32_t a = U'�'; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -char32_t b = U'�'; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -char32_t c = U'�'; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -char32_t d = U'�'; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -char32_t e = U'�'; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -char32_t f = U'�'; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -char32_t g = U'�'; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -char32_t h = U'�'; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -char32_t i = U'���'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -char32_t j = U'���'; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -char32_t k = U'��'; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -char32_t l = U'��'; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -char32_t m = U'���'; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -char32_t n = U'����'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -char32_t o = U'����'; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -char32_t p = U'����'; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -char32_t q = U'������'; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +char32_t a = U'�'; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +char32_t b = U'�'; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +char32_t c = U'�'; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +char32_t d = U'�'; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +char32_t e = U'�'; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +char32_t f = U'�'; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +char32_t g = U'�'; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +char32_t h = U'�'; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +char32_t i = U'���'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +char32_t j = U'���'; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +char32_t k = U'��'; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +char32_t l = U'��'; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +char32_t m = U'���'; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +char32_t n = U'����'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +char32_t o = U'����'; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +char32_t p = U'����'; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +char32_t q = U'������'; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A = U"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B = U"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -auto C = U"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D = U"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E = U"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F = U"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G = U"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H = U"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I = U"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J = U"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K = U"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L = U"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M = U"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N = U"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O = U"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P = U"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q = U"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R = U"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B = U"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C = U"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D = U"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E = U"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F = U"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G = U"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H = U"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I = U"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J = U"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K = U"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L = U"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M = U"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N = U"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O = U"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P = U"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q = U"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R = U"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A1 = UR"(߿ࠀ𐀀)"; // { dg-bogus "invalid UTF-8 character" } -auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A2 = u8"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-6.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-6.C 2024-09-13 10:30:31.747301679 +0200 @@ -3,78 +3,78 @@ // { dg-do preprocess { target c++11 } } // { dg-options "-finput-charset=UTF-8 -pedantic" } -char32_t a = U'�'; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -char32_t b = U'�'; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -char32_t c = U'�'; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -char32_t d = U'?'; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -char32_t e = U'�'; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -char32_t f = U'�'; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -char32_t g = U'�'; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -char32_t h = U'�'; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -char32_t i = U'���'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -char32_t j = U'���'; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -char32_t k = U'��'; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -char32_t l = U'��'; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -char32_t m = U'���'; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -char32_t n = U'����'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -char32_t o = U'����'; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -char32_t p = U'����'; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -char32_t q = U'������'; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +char32_t a = U'�'; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +char32_t b = U'�'; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +char32_t c = U'�'; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +char32_t d = U'�'; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +char32_t e = U'�'; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +char32_t f = U'�'; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +char32_t g = U'�'; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +char32_t h = U'�'; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +char32_t i = U'���'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +char32_t j = U'���'; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +char32_t k = U'��'; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +char32_t l = U'��'; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +char32_t m = U'���'; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +char32_t n = U'����'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +char32_t o = U'����'; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +char32_t p = U'����'; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +char32_t q = U'������'; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A = U"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B = U"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -auto C = U"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D = U"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E = U"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F = U"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G = U"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H = U"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I = U"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J = U"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K = U"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L = U"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M = U"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N = U"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O = U"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P = U"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q = U"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R = U"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B = U"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C = U"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D = U"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E = U"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F = U"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G = U"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H = U"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I = U"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J = U"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K = U"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L = U"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M = U"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N = U"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O = U"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P = U"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q = U"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R = U"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A1 = UR"(߿ࠀ𐀀)"; // { dg-bogus "invalid UTF-8 character" } -auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I1 = UR"(�)"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M1 = UR"(��)"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N1 = UR"(���)"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q1 = UR"(����)"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R1 = UR"(������)"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A2 = u8"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B2 = u8"�"; // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C2 = u8"�"; // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F2 = u8"�"; // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G2 = u8"�"; // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H2 = u8"�"; // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I2 = u8"�"; // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K2 = u8"���"; // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L2 = u8"��"; // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M2 = u8"��"; // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N2 = u8"���"; // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q2 = u8"����"; // { dg-warning "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R2 = u8"������"; // { dg-warning "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-7.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-7.C 2024-09-13 10:30:46.597096759 +0200 @@ -3,78 +3,78 @@ // { dg-do preprocess { target c++11 } } // { dg-options "-finput-charset=UTF-8 -pedantic-errors" } -char32_t a = U'�'; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } -char32_t b = U'�'; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } -char32_t c = U'�'; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } -char32_t d = U'�'; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } -char32_t e = U'�'; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } -char32_t f = U'�'; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } -char32_t g = U'�'; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } -char32_t h = U'�'; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } -char32_t i = U'���'; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -char32_t j = U'���'; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -char32_t k = U'��'; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -char32_t l = U'��'; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } -char32_t m = U'�??'; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -char32_t n = U'����'; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -char32_t o = U'����'; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -char32_t p = U'����'; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -char32_t q = U'������'; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +char32_t a = U'�'; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } +char32_t b = U'�'; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } +char32_t c = U'�'; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } +char32_t d = U'�'; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } +char32_t e = U'�'; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } +char32_t f = U'�'; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } +char32_t g = U'�'; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } +char32_t h = U'�'; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } +char32_t i = U'���'; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +char32_t j = U'���'; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +char32_t k = U'�?'; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +char32_t l = U'��'; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +char32_t m = U'���'; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +char32_t n = U'����'; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +char32_t o = U'����'; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +char32_t p = U'����'; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +char32_t q = U'������'; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A = U"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B = U"�"; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } -auto C = U"�"; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D = U"�"; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E = U"�"; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F = U"�"; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G = U"�"; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H = U"�"; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I = U"�"; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J = U"���"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K = U"���"; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L = U"��"; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M = U"��"; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N = U"���"; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O = U"����"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P = U"����"; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q = U"����"; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R = U"������"; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B = U"�"; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C = U"�"; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D = U"�"; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E = U"�"; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F = U"�"; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G = U"�"; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H = U"�"; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I = U"�"; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J = U"���"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K = U"���"; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L = U"��"; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M = U"��"; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N = U"���"; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O = U"����"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P = U"����"; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q = U"����"; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R = U"������"; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A1 = UR"(߿ࠀ𐀀)"; // { dg-bogus "invalid UTF-8 character" } -auto B1 = UR"(�)"; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } -auto C1 = UR"(�)"; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D1 = UR"(�)"; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E1 = UR"(�)"; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F1 = UR"(�)"; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G1 = UR"(�)"; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H1 = UR"(�)"; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I1 = UR"(�)"; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J1 = UR"(���)"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K1 = UR"(���)"; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L1 = UR"(��)"; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M1 = UR"(��)"; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N1 = UR"(���)"; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O1 = UR"(����)"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P1 = UR"(����)"; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q1 = UR"(����)"; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R1 = UR"(������)"; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I1 = UR"(�)"; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J1 = UR"(���)"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K1 = UR"(���)"; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L1 = UR"(��)"; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M1 = UR"(��)"; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N1 = UR"(���)"; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O1 = UR"(����)"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P1 = UR"(����)"; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q1 = UR"(����)"; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R1 = UR"(������)"; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A2 = u8"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B2 = u8"�"; // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } -auto C2 = u8"�"; // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D2 = u8"�"; // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E2 = u8"�"; // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F2 = u8"�"; // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G2 = u8"�"; // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H2 = u8"�"; // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I2 = u8"�"; // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J2 = u8"���"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K2 = u8"���"; // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L2 = u8"��"; // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M2 = u8"��"; // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N2 = u8"���"; // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O2 = u8"����"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P2 = u8"����"; // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q2 = u8"����"; // { dg-error "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R2 = u8"������"; // { dg-error "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B2 = u8"�"; // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C2 = u8"�"; // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D2 = u8"�"; // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E2 = u8"�"; // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F2 = u8"�"; // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G2 = u8"�"; // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H2 = u8"�"; // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I2 = u8"�"; // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J2 = u8"���"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K2 = u8"���"; // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L2 = u8"��"; // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M2 = u8"��"; // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N2 = u8"���"; // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O2 = u8"����"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P2 = u8"����"; // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q2 = u8"����"; // { dg-error "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R2 = u8"������"; // { dg-error "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-8.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-8.C 2024-09-13 10:31:04.698846968 +0200 @@ -3,78 +3,78 @@ // { dg-do preprocess { target c++11 } } // { dg-options "-finput-charset=UTF-8 -pedantic-errors -Wno-invalid-utf8" } -char32_t a = U'�'; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } -char32_t b = U'�'; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } -char32_t c = U'�'; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } -char32_t d = U'�'; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } -char32_t e = U'�'; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } -char32_t f = U'�'; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } -char32_t g = U'�'; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } -char32_t h = U'�'; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } -char32_t i = U'���'; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -char32_t j = U'���'; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -char32_t k = U'��'; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -char32_t l = U'��'; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } -char32_t m = U'���'; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -char32_t n = U'����'; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -char32_t o = U'����'; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -char32_t p = U'����'; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -char32_t q = U'������'; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +char32_t a = U'�'; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } +char32_t b = U'�'; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } +char32_t c = U'�'; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } +char32_t d = U'�'; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } +char32_t e = U'�'; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } +char32_t f = U'�'; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } +char32_t g = U'�'; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } +char32_t h = U'�'; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } +char32_t i = U'���'; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +char32_t j = U'���'; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +char32_t k = U'��'; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +char32_t l = U'��'; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +char32_t m = U'���'; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +char32_t n = U'����'; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +char32_t o = U'����'; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +char32_t p = U'����'; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +char32_t q = U'������'; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A = U"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B = U"�"; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } -auto C = U"�"; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D = U"�"; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E = U"�"; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F = U"�"; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G = U"�"; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H = U"�"; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I = U"�"; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J = U"���"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K = U"���"; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L = U"��"; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M = U"��"; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N = U"���"; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O = U"����"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P = U"����"; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q = U"����"; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R = U"������"; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B = U"�"; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C = U"�"; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D = U"�"; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E = U"�"; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F = U"�"; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G = U"�"; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H = U"�"; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I = U"�"; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J = U"���"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K = U"���"; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L = U"��"; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M = U"��"; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N = U"���"; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O = U"����"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P = U"����"; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q = U"����"; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R = U"������"; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A1 = UR"(߿ࠀ𐀀)"; // { dg-bogus "invalid UTF-8 character" } -auto B1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } -auto C1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R1 = UR"(������)"; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I1 = UR"(�)"; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M1 = UR"(��)"; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N1 = UR"(���)"; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q1 = UR"(����)"; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R1 = UR"(������)"; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } auto A2 = u8"߿ࠀ𐀀"; // { dg-bogus "invalid UTF-8 character" } -auto B2 = u8"�"; // { dg-bogus "invalid UTF-8 character <80>" "" { target c++23 } } -auto C2 = u8"�"; // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } } -auto D2 = u8"�"; // { dg-bogus "invalid UTF-8 character <c0>" "" { target c++23 } } -auto E2 = u8"�"; // { dg-bogus "invalid UTF-8 character <c1>" "" { target c++23 } } -auto F2 = u8"�"; // { dg-bogus "invalid UTF-8 character <f5>" "" { target c++23 } } -auto G2 = u8"�"; // { dg-bogus "invalid UTF-8 character <ff>" "" { target c++23 } } -auto H2 = u8"�"; // { dg-bogus "invalid UTF-8 character <c2>" "" { target c++23 } } -auto I2 = u8"�"; // { dg-bogus "invalid UTF-8 character <e0>" "" { target c++23 } } -auto J2 = u8"���"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -auto K2 = u8"���"; // { dg-bogus "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -auto L2 = u8"��"; // { dg-bogus "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -auto M2 = u8"��"; // { dg-bogus "invalid UTF-8 character <ec><80>" "" { target c++23 } } -auto N2 = u8"���"; // { dg-bogus "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -auto O2 = u8"����"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -auto P2 = u8"����"; // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } -auto Q2 = u8"����"; // { dg-bogus "invalid UTF-8 character <f4><90><80><80>" "" { target c++23 } } -auto R2 = u8"������"; // { dg-bogus "invalid UTF-8 character <fd><bf><bf><bf>" "" { target c++23 } } - // { dg-bogus "invalid UTF-8 character <bf>" "" { target c++23 } .-1 } +auto B2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<80>'" "" { target c++23 } } +auto C2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } } +auto D2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<c0>'" "" { target c++23 } } +auto E2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<c1>'" "" { target c++23 } } +auto F2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<f5>'" "" { target c++23 } } +auto G2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<ff>'" "" { target c++23 } } +auto H2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<c2>'" "" { target c++23 } } +auto I2 = u8"�"; // { dg-bogus "invalid UTF-8 character '<e0>'" "" { target c++23 } } +auto J2 = u8"���"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +auto K2 = u8"���"; // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +auto L2 = u8"��"; // { dg-bogus "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +auto M2 = u8"��"; // { dg-bogus "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +auto N2 = u8"���"; // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +auto O2 = u8"����"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +auto P2 = u8"����"; // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } +auto Q2 = u8"����"; // { dg-bogus "invalid UTF-8 character '<f4><90><80><80>'" "" { target c++23 } } +auto R2 = u8"������"; // { dg-bogus "invalid UTF-8 character '<fd><bf><bf><bf>'" "" { target c++23 } } + // { dg-bogus "invalid UTF-8 character '<bf>'" "" { target c++23 } .-1 } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-9.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-9.C 2024-09-13 10:31:20.573627902 +0200 @@ -6,20 +6,20 @@ #define I(x) I(߿ࠀ𐀀) // { dg-bogus "invalid UTF-8 character" } // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } -I(�) // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -I(���) // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -I(���) // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -I(��) // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -I(��) // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -I(���) // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -I(����) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -I(����) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +I(���) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +I(���) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +I(��) // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +I(��) // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +I(���) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +I(����) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +I(����) // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } I(����) // { dg-error "is not valid in an identifier" } I(������) // { dg-error "is not valid in an identifier" } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-10.C 2024-09-13 10:31:41.081344907 +0200 @@ -6,20 +6,20 @@ #define I(x) I(߿ࠀ𐀀) // { dg-bogus "invalid UTF-8 character" } // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } -I(�) // { dg-warning "invalid UTF-8 character <80>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <bf>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <c0>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <c1>" "" { target c++23 } } -I(?) // { dg-warning "invalid UTF-8 character <f5>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <ff>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <c2>" "" { target c++23 } } -I(�) // { dg-warning "invalid UTF-8 character <e0>" "" { target c++23 } } -I(���) // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -I(���) // { dg-warning "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -I(��) // { dg-warning "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -I(��) // { dg-warning "invalid UTF-8 character <ec><80>" "" { target c++23 } } -I(���) // { dg-warning "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -I(����) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -I(����) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<80>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<bf>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<c0>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<c1>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<f5>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<ff>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<c2>'" "" { target c++23 } } +I(�) // { dg-warning "invalid UTF-8 character '<e0>'" "" { target c++23 } } +I(���) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +I(���) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +I(��) // { dg-warning "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +I(��) // { dg-warning "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +I(���) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +I(����) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +I(����) // { dg-warning "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } I(����) // { dg-error "is not valid in an identifier" } I(������) // { dg-error "is not valid in an identifier" } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-11.C 2024-09-13 10:31:55.809141675 +0200 @@ -6,20 +6,20 @@ #define I(x) I(߿ࠀ𐀀) // { dg-bogus "invalid UTF-8 character" } // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } -I(�) // { dg-error "invalid UTF-8 character <80>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <bf>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <c0>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <c1>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <f5>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <ff>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <c2>" "" { target c++23 } } -I(�) // { dg-error "invalid UTF-8 character <e0>" "" { target c++23 } } -I(���) // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } -I(���) // { dg-error "invalid UTF-8 character <e0><9f><80>" "" { target c++23 } } -I(��) // { dg-error "invalid UTF-8 character <e0><bf>" "" { target c++23 } } -I(��) // { dg-error "invalid UTF-8 character <ec><80>" "" { target c++23 } } -I(���) // { dg-error "invalid UTF-8 character <ed><a0><80>" "" { target c++23 } } -I(����) // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } -I(����) // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<80>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<bf>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<c0>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<c1>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<f5>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<ff>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<c2>'" "" { target c++23 } } +I(�) // { dg-error "invalid UTF-8 character '<e0>'" "" { target c++23 } } +I(���) // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } +I(���) // { dg-error "invalid UTF-8 character '<e0><9f><80>'" "" { target c++23 } } +I(��) // { dg-error "invalid UTF-8 character '<e0><bf>'" "" { target c++23 } } +I(��) // { dg-error "invalid UTF-8 character '<ec><80>'" "" { target c++23 } } +I(���) // { dg-error "invalid UTF-8 character '<ed><a0><80>'" "" { target c++23 } } +I(����) // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } +I(����) // { dg-error "invalid UTF-8 character '<f0><8f><bf><bf>'" "" { target c++23 } } I(����) // { dg-error "is not valid in an identifier" } I(������) // { dg-error "is not valid in an identifier" } --- gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-12.C.jj 2022-09-02 23:05:41.240223960 +0200 +++ gcc/testsuite/g++.dg/cpp23/Winvalid-utf8-12.C 2024-09-13 10:32:13.942891436 +0200 @@ -6,20 +6,20 @@ #define I(x) I(߿ࠀ𐀀) // { dg-bogus "invalid UTF-8 character" } // { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 } -I(�) // { dg-bogus "invalid UTF-8 character <80>" } -I(�) // { dg-bogus "invalid UTF-8 character <bf>" } -I(�) // { dg-bogus "invalid UTF-8 character <c0>" } -I(�) // { dg-bogus "invalid UTF-8 character <c1>" } -I(�) // { dg-bogus "invalid UTF-8 character <f5>" } -I(�) // { dg-bogus "invalid UTF-8 character <ff>" } -I(�) // { dg-bogus "invalid UTF-8 character <c2>" } -I(�) // { dg-bogus "invalid UTF-8 character <e0>" } -I(���) // { dg-bogus "invalid UTF-8 character <e0><80><bf>" } -I(���) // { dg-bogus "invalid UTF-8 character <e0><9f><80>" } -I(��) // { dg-bogus "invalid UTF-8 character <e0><bf>" } -I(��) // { dg-bogus "invalid UTF-8 character <ec><80>" } -I(���) // { dg-bogus "invalid UTF-8 character <ed><a0><80>" } -I(����) // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } -I(����) // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" } +I(�) // { dg-bogus "invalid UTF-8 character '<80>" } +I(�) // { dg-bogus "invalid UTF-8 character '<bf>'" } +I(�) // { dg-bogus "invalid UTF-8 character '<c0>'" } +I(�) // { dg-bogus "invalid UTF-8 character '<c1>'" } +I(�) // { dg-bogus "invalid UTF-8 character '<f5>'" } +I(�) // { dg-bogus "invalid UTF-8 character '<ff>'" } +I(�) // { dg-bogus "invalid UTF-8 character '<c2>'" } +I(�) // { dg-bogus "invalid UTF-8 character '<e0>'" } +I(���) // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } +I(���) // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } +I(��) // { dg-bogus "invalid UTF-8 character '<e0><bf>'" } +I(��) // { dg-bogus "invalid UTF-8 character '<ec><80>'" } +I(���) // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } +I(����) // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } +I(����) // { dg-bogus "invalid UTF-8 character '<f0><8f><bf><bf>'" } I(����) // { dg-error "is not valid in an identifier" } I(������) // { dg-error "is not valid in an identifier" } --- gcc/testsuite/g++.dg/cpp/elifdef-3.C.jj 2021-10-07 23:03:44.116934656 +0200 +++ gcc/testsuite/g++.dg/cpp/elifdef-3.C 2024-09-13 10:34:16.755196685 +0200 @@ -4,53 +4,53 @@ #define A #undef B -#elifdef A // { dg-error "#elifdef without #if" } -#elifdef B // { dg-error "#elifdef without #if" } -#elifndef A // { dg-error "#elifndef without #if" } -#elifndef B // { dg-error "#elifndef without #if" } +#elifdef A // { dg-error "'#elifdef' without '#if'" } +#elifdef B // { dg-error "'#elifdef' without '#if'" } +#elifndef A // { dg-error "'#elifndef' without '#if'" } +#elifndef B // { dg-error "'#elifndef' without '#if'" } #if 1 // { dg-error "-:began here" } #else -#elifdef A // { dg-error "#elifdef after #else" } +#elifdef A // { dg-error "'#elifdef' after '#else'" } #endif #if 1 // { dg-error "-:began here" } #else -#elifdef B // { dg-error "#elifdef after #else" } +#elifdef B // { dg-error "'#elifdef' after '#else'" } #endif #if 1 // { dg-error "-:began here" } #else -#elifndef A // { dg-error "#elifndef after #else" } +#elifndef A // { dg-error "'#elifndef' after '#else'" } #endif #if 1 // { dg-error "-:began here" } #else -#elifndef B // { dg-error "#elifndef after #else" } +#elifndef B // { dg-error "'#elifndef' after '#else'" } #endif #if 0 -#elifdef A = // { dg-error "extra tokens at end of #elifdef directive" } +#elifdef A = // { dg-error "extra tokens at end of '#elifdef' directive" } #endif #if 0 -#elifdef B = // { dg-error "extra tokens at end of #elifdef directive" } +#elifdef B = // { dg-error "extra tokens at end of '#elifdef' directive" } #endif #if 0 -#elifndef A = // { dg-error "extra tokens at end of #elifndef directive" } +#elifndef A = // { dg-error "extra tokens at end of '#elifndef' directive" } #endif #if 0 -#elifndef B = // { dg-error "extra tokens at end of #elifndef directive" } +#elifndef B = // { dg-error "extra tokens at end of '#elifndef' directive" } #endif #if 0 -#elifdef // { dg-error "no macro name given in #elifdef directive" } +#elifdef // { dg-error "no macro name given in '#elifdef' directive" } #endif #if 0 -#elifndef // { dg-error "no macro name given in #elifndef directive" } +#elifndef // { dg-error "no macro name given in '#elifndef' directive" } #endif #if 0 --- gcc/testsuite/g++.dg/cpp/elifdef-5.C.jj 2021-10-07 23:03:44.116934656 +0200 +++ gcc/testsuite/g++.dg/cpp/elifdef-5.C 2024-09-13 10:35:35.074115927 +0200 @@ -5,53 +5,53 @@ #define A #undef B -#elifdef A // { dg-error "#elifdef without #if" } -#elifdef B // { dg-error "#elifdef without #if" } -#elifndef A // { dg-error "#elifndef without #if" } -#elifndef B // { dg-error "#elifndef without #if" } +#elifdef A // { dg-error "'#elifdef' without '#if'" } +#elifdef B // { dg-error "'#elifdef' without '#if'" } +#elifndef A // { dg-error "'#elifndef' without '#if'" } +#elifndef B // { dg-error "'#elifndef' without '#if'" } #if 1 // { dg-error "-:began here" } #else -#elifdef A // { dg-error "#elifdef after #else" } +#elifdef A // { dg-error "'#elifdef' after '#else'" } #endif #if 1 // { dg-error "-:began here" } #else -#elifdef B // { dg-error "#elifdef after #else" } +#elifdef B // { dg-error "'#elifdef' after '#else'" } #endif #if 1 // { dg-error "-:began here" } #else -#elifndef A // { dg-error "#elifndef after #else" } +#elifndef A // { dg-error "'#elifndef' after '#else'" } #endif #if 1 // { dg-error "-:began here" } #else -#elifndef B // { dg-error "#elifndef after #else" } +#elifndef B // { dg-error "'#elifndef' after '#else'" } #endif #if 0 -#elifdef A = // { dg-warning "extra tokens at end of #elifdef directive" } +#elifdef A = // { dg-warning "extra tokens at end of '#elifdef' directive" } #endif #if 0 -#elifdef B = // { dg-warning "extra tokens at end of #elifdef directive" } +#elifdef B = // { dg-warning "extra tokens at end of '#elifdef' directive" } #endif #if 0 -#elifndef A = // { dg-warning "extra tokens at end of #elifndef directive" } +#elifndef A = // { dg-warning "extra tokens at end of '#elifndef' directive" } #endif #if 0 -#elifndef B = // { dg-warning "extra tokens at end of #elifndef directive" } +#elifndef B = // { dg-warning "extra tokens at end of '#elifndef' directive" } #endif #if 0 -#elifdef // { dg-error "no macro name given in #elifdef directive" } +#elifdef // { dg-error "no macro name given in '#elifdef' directive" } #endif #if 0 -#elifndef // { dg-error "no macro name given in #elifndef directive" } +#elifndef // { dg-error "no macro name given in '#elifndef' directive" } #endif #if 0 --- gcc/testsuite/g++.dg/cpp/elifdef-6.C.jj 2021-10-07 23:03:44.116934656 +0200 +++ gcc/testsuite/g++.dg/cpp/elifdef-6.C 2024-09-13 10:36:34.664293616 +0200 @@ -6,7 +6,7 @@ #undef B #if 0 -#elifdef A // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef A // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #define M1 1 #endif @@ -25,7 +25,7 @@ #endif #if 0 -#elifndef B // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef B // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #define M2 2 #endif @@ -34,32 +34,32 @@ #endif #if 0 -#elifdef A // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef A // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #else #error "#elifdef A did not apply" #endif #if 0 -#elifndef B // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef B // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #else #error "#elifndef B did not apply" #endif #if 1 -#elifdef A // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef A // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif #if 1 -#elifndef B // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef B // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif // As with #elif, the syntax of the new directives is relaxed after a non-skipped group. #if 1 -#elifdef x * y // { dg-warning "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef x * y // { dg-warning "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif #if 1 -#elifndef ! // { dg-warning "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef ! // { dg-warning "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif --- gcc/testsuite/g++.dg/cpp/elifdef-7.C.jj 2021-10-07 23:03:44.116934656 +0200 +++ gcc/testsuite/g++.dg/cpp/elifdef-7.C 2024-09-13 10:23:22.291230601 +0200 @@ -6,7 +6,7 @@ #undef B #if 0 -#elifdef A // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef A // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #define M1 1 #endif @@ -25,7 +25,7 @@ #endif #if 0 -#elifndef B // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef B // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #define M2 2 #endif @@ -34,32 +34,32 @@ #endif #if 0 -#elifdef A // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef A // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #else #error "#elifdef A did not apply" #endif #if 0 -#elifndef B // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef B // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #else #error "#elifndef B did not apply" #endif #if 1 -#elifdef A // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef A // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif #if 1 -#elifndef B // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef B // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif // As with #elif, the syntax of the new directives is relaxed after a non-skipped group. #if 1 -#elifdef x * y // { dg-error "#elifdef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifdef x * y // { dg-error "'#elifdef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif #if 1 -#elifndef ! // { dg-error "#elifndef before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } +#elifndef ! // { dg-error "'#elifndef' before C\\\+\\\+23 is a GCC extension" "" { target c++20_down } } #endif --- gcc/testsuite/g++.dg/cpp/embed-1.C.jj 2024-09-12 23:12:54.031424116 +0200 +++ gcc/testsuite/g++.dg/cpp/embed-1.C 2024-09-13 10:24:00.101708382 +0200 @@ -6,9 +6,9 @@ #endif int a = -#embed __FILE__ limit (1) // { dg-error "#embed is a GCC extension" } +#embed __FILE__ limit (1) // { dg-error "'#embed' is a GCC extension" } ; int b = (__extension__ -#embed __FILE__ limit (1) // { dg-error "#embed is a GCC extension" } +#embed __FILE__ limit (1) // { dg-error "'#embed' is a GCC extension" } ); --- gcc/testsuite/g++.dg/cpp/embed-2.C.jj 2024-09-12 23:12:54.031424116 +0200 +++ gcc/testsuite/g++.dg/cpp/embed-2.C 2024-09-13 10:24:24.383373016 +0200 @@ -6,9 +6,9 @@ #endif int a = -#embed __FILE__ limit (1) // { dg-warning "#embed is a GCC extension" } +#embed __FILE__ limit (1) // { dg-warning "'#embed' is a GCC extension" } ; int b = (__extension__ -#embed __FILE__ limit (1) // { dg-warning "#embed is a GCC extension" } +#embed __FILE__ limit (1) // { dg-warning "'#embed' is a GCC extension" } ); --- gcc/testsuite/g++.dg/cpp/pedantic-errors.C.jj 2020-01-14 20:02:46.701611062 +0100 +++ gcc/testsuite/g++.dg/cpp/pedantic-errors.C 2024-09-13 10:53:57.298943459 +0200 @@ -2,4 +2,4 @@ /* { dg-options "-std=c++98 -pedantic-errors" } */ #if 1 -#endif 1 /* { dg-error "extra tokens at end of #endif directive" } */ +#endif 1 /* { dg-error "extra tokens at end of '#endif' directive" } */ --- gcc/testsuite/g++.dg/cpp/warning-1.C.jj 2022-08-25 20:34:49.333893224 +0200 +++ gcc/testsuite/g++.dg/cpp/warning-1.C 2024-09-13 10:37:37.761422912 +0200 @@ -3,4 +3,4 @@ // { dg-options "-pedantic-errors" } #warning example text /* { dg-warning "example text" } */ -// { dg-error "#warning before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } +// { dg-error "'#warning' before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } --- gcc/testsuite/g++.dg/cpp/warning-2.C.jj 2022-08-25 20:34:49.333893224 +0200 +++ gcc/testsuite/g++.dg/cpp/warning-2.C 2024-09-13 10:37:57.462151052 +0200 @@ -3,4 +3,4 @@ // { dg-options "-pedantic" } #warning example text /* { dg-warning "example text" } */ -// { dg-warning "#warning before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } +// { dg-warning "'#warning' before C\\\+\\\+23 is a GCC extension" "pedantic" { target c++20_down } .-1 } --- gcc/testsuite/g++.dg/ext/bitint1.C.jj 2023-09-08 11:29:20.119767813 +0200 +++ gcc/testsuite/g++.dg/ext/bitint1.C 2024-09-13 11:37:09.095581218 +0200 @@ -3,7 +3,7 @@ _BitInt(63) a; // { dg-error "expected" } unsigned _BitInt(31) b; // { dg-error "expected" } -int c = 21wb; // { dg-error "invalid suffix \"wb\" on integer constant" "" { target c++98_only } } +int c = 21wb; // { dg-error "invalid suffix 'wb' on integer constant" "" { target c++98_only } } // { dg-error "unable to find numeric literal operator 'operator\"\"wb'" "" { target c++11 } .-1 } -long long d = 60594869054uwb; // { dg-error "invalid suffix \"uwb\" on integer constant" "" { target c++98_only } } +long long d = 60594869054uwb; // { dg-error "invalid suffix 'uwb' on integer constant" "" { target c++98_only } } // { dg-error "unable to find numeric literal operator 'operator\"\"uwb'" "" { target c++11 } .-1 } --- gcc/testsuite/g++.dg/ext/bitint2.C.jj 2023-09-08 11:29:20.119767813 +0200 +++ gcc/testsuite/g++.dg/ext/bitint2.C 2024-09-13 11:37:40.370171647 +0200 @@ -4,7 +4,7 @@ _BitInt(63) a; // { dg-error "expected" } unsigned _BitInt(31) b; // { dg-error "expected" } -int c = 21wb; // { dg-error "invalid suffix \"wb\" on integer constant" "" { target c++98_only } } +int c = 21wb; // { dg-error "invalid suffix 'wb' on integer constant" "" { target c++98_only } } // { dg-error "unable to find numeric literal operator 'operator\"\"wb'" "" { target c++11 } .-1 } -long long d = 60594869054uwb; // { dg-error "invalid suffix \"uwb\" on integer constant" "" { target c++98_only } } +long long d = 60594869054uwb; // { dg-error "invalid suffix 'uwb' on integer constant" "" { target c++98_only } } // { dg-error "unable to find numeric literal operator 'operator\"\"uwb'" "" { target c++11 } .-1 }