$(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)
#\f
# How to compile object files to run on the build machine.
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 \
# 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 = \
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);
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;
}
if (token->type != CPP_OPEN_PAREN)
{
cpp_error (pfile, CPP_DL_ERROR,
- "missing '(' after \"__has_%s\"", builtin);
+ "missing %<(%> after %<__has_%s%>", builtin);
return 0;
}
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;
}
#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. */
/* 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,
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)
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, ...)
{
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, ...)
{
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, ...)
{
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, ...)
{
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);
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;
}
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;
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;
{
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)
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);
}
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
int i;
-/* { dg-warning "header guard \"WHEADER_GUARD_2\" followed by \"#define\" of a different macro" "" { target *-*-* } 0 } */
-/* { dg-message "\"WHEADERGUARD2\" is defined here; did you mean \"WHEADER_GUARD_2\"\\\?" "" { target *-*-* } 0 } */
+/* { dg-warning "header guard 'WHEADER_GUARD_2' followed by '#define' of a different macro" "" { target *-*-* } 0 } */
+/* { dg-message "'WHEADERGUARD2' is defined here; did you mean 'WHEADER_GUARD_2'\\\?" "" { target *-*-* } 0 } */
int i;
-/* { dg-warning "header guard \"WHEADER_GUARD_3\" followed by \"#define\" of a different macro" "" { target *-*-* } 0 } */
-/* { dg-message "\"WHEADERGUARD3\" is defined here; did you mean \"WHEADER_GUARD_3\"\\\?" "" { target *-*-* } 0 } */
+/* { dg-warning "header guard 'WHEADER_GUARD_3' followed by '#define' of a different macro" "" { target *-*-* } 0 } */
+/* { dg-message "'WHEADERGUARD3' is defined here; did you mean 'WHEADER_GUARD_3'\\\?" "" { target *-*-* } 0 } */
// { dg-options "-finput-charset=UTF-8 -Winvalid-utf8" }
// a\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" }
-// a\80a { 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à \80¿a { dg-warning "invalid UTF-8 character <e0><80><bf>" }
-// aà \9f\80a { dg-warning "invalid UTF-8 character <e0><9f><80>" }
-// aà ¿a { dg-warning "invalid UTF-8 character <e0><bf>" }
-// aì\80a { dg-warning "invalid UTF-8 character <ec><80>" }
-// aí €a { dg-warning "invalid UTF-8 character <ed><a0><80>" }
-// að\80\80\80a { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
-// að\8f¿¿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\80a { 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à \80¿a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" }
+// aà \9f\80a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" }
+// aà ¿a { dg-warning "invalid UTF-8 character '<e0><bf>'" }
+// aì\80a { dg-warning "invalid UTF-8 character '<ec><80>'" }
+// aí €a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" }
+// að\80\80\80a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" }
+// að\8f¿¿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\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" } */
-/* a\80a { 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à \80¿a { dg-warning "invalid UTF-8 character <e0><80><bf>" } */
-/* aà \9f\80a { dg-warning "invalid UTF-8 character <e0><9f><80>" } */
-/* aà ¿a { dg-warning "invalid UTF-8 character <e0><bf>" } */
-/* aì\80a { dg-warning "invalid UTF-8 character <ec><80>" } */
-/* aí €a { dg-warning "invalid UTF-8 character <ed><a0><80>" } */
-/* að\80\80\80a { dg-warning "invalid UTF-8 character <f0><80><80><80>" } */
-/* að\8f¿¿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\80a { 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à \80¿a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" } */
+/* aà \9f\80a { dg-warning "invalid UTF-8 character '<e0><9f><80>'" } */
+/* aà ¿a { dg-warning "invalid UTF-8 character '<e0><bf>'" } */
+/* aì\80a { dg-warning "invalid UTF-8 character '<ec><80>'" } */
+/* aí €a { dg-warning "invalid UTF-8 character '<ed><a0><80>'" } */
+/* að\80\80\80a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" } */
+/* að\8f¿¿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 } */
typedef __CHAR32_TYPE__ char32_t;
#endif
-char32_t a = U'\80'; // { 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'à \80¿'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" }
-char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
-char32_t o = U'ð\8f¿¿'; // { 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'\80'; // { 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'à \80¿'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" }
+char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" }
+char32_t o = U'ð\8f¿¿'; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-const char32_t *B = U"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" }
-const char32_t *K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
-const char32_t *P = U"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" }
+const char32_t *K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" }
+const char32_t *P = U"ð\8f¿¿"; // { 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"(\80ß¿à €íŸ¿î€€ð€€ô¿¿)"; // { dg-bogus "invalid UTF-8 character" }
-const char32_t *B1 = UR"(\80)"; // { 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"(à \80¿)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" }
-const char32_t *K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
-const char32_t *P1 = UR"(ð\8f¿¿)"; // { 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"(\80)"; // { 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"(à \80¿)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" }
+const char32_t *K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" }
+const char32_t *P1 = UR"(ð\8f¿¿)"; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-const char *B2 = u8"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" }
-const char *K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
-const char *P2 = u8"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" }
+const char *K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" }
+const char *P2 = u8"ð\8f¿¿"; // { 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 }
#define I(x)
I(\80ß¿à €íŸ¿î€€ð€€ô¿¿) // { dg-bogus "invalid UTF-8 character" }
// { dg-error "is not valid in an identifier" "" { target c++ } .-1 }
-I(\80) // { 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(à \80¿) // { dg-warning "invalid UTF-8 character <e0><80><bf>" }
-I(Ã \9f\80) // { dg-warning "invalid UTF-8 character <e0><9f><80>" }
-I(à ¿) // { dg-warning "invalid UTF-8 character <e0><bf>" }
-I(ì\80) // { dg-warning "invalid UTF-8 character <ec><80>" }
-I(í €) // { dg-warning "invalid UTF-8 character <ed><a0><80>" }
-I(ð\80\80\80) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" }
-I(ð\8f¿¿) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" }
-I(ô€€) // { dg-warning "invalid UTF-8 character <f4><90><80><80>" "" { target c } }
+I(\80) // { 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(à \80¿) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" }
+I(Ã \9f\80) // { dg-warning "invalid UTF-8 character '<e0><9f><80>'" }
+I(à ¿) // { dg-warning "invalid UTF-8 character '<e0><bf>'" }
+I(ì\80) // { dg-warning "invalid UTF-8 character '<ec><80>'" }
+I(í €) // { dg-warning "invalid UTF-8 character '<ed><a0><80>'" }
+I(ð\80\80\80) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" }
+I(ð\8f¿¿) // { 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 }
#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
#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" } */
#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
#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'" } */
/* { 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" } */
/* { 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
/* { 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 } */
/* { 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 } */
/* { 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 } */
#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} } */
/* { 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 )
/* { 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\\\)" } */
# 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
// { 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} }
// { 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" }
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);
^
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);
^
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 } */
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 } */
/* 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
^~~
#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
^~~~~
^~~~~
/* { 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)
^
#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" } */
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 } */
/* { 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
/* { 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" } */
/* { 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" } */
{ 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>'"} } }
*/
{ 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>'"} } }
*/
/* { 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" } */
)"
#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)"
#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
/* { 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" } */
#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
#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
#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
#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
#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
#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
#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
#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
#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" }
);
#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" }
);
/* { 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" } */
// { 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 }
// { 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 }
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
// { dg-options "-finput-charset=UTF-8" }
// a\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" }
-// a\80a { 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à \80¿a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-// aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-// að\8f¿¿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\80a { 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à \80¿a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+// aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+// að\8f¿¿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\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" } */
-/* a\80a { 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à \80¿a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */
-/* aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */
-/* að\8f¿¿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\80a { 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à \80¿a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */
+/* aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */
+/* að\8f¿¿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 } */
#define I(x)
I(\80ß¿à €íŸ¿î€€ð€€ô¿¿) // { dg-bogus "invalid UTF-8 character" }
// { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 }
-I(\80) // { 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(à \80¿) // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-I(Ã \9f\80) // { 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(ì\80) // { 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(ð\80\80\80) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-I(ð\8f¿¿) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } }
+I(\80) // { 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(à \80¿) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+I(Ã \9f\80) // { 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(ì\80) // { 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(ð\80\80\80) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+I(ð\8f¿¿) // { 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" }
#define I(x)
I(\80ß¿à €íŸ¿î€€ð€€ô¿¿) // { dg-bogus "invalid UTF-8 character" }
// { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 }
-I(\80) // { 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(à \80¿) // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-I(Ã \9f\80) // { 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(ì\80) // { 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(ð\80\80\80) // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-I(ð\8f¿¿) // { dg-error "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } }
+I(\80) // { 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(à \80¿) // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+I(Ã \9f\80) // { 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(ì\80) // { 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(ð\80\80\80) // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+I(ð\8f¿¿) // { 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" }
#define I(x)
I(\80ß¿à €íŸ¿î€€ð€€ô¿¿) // { dg-bogus "invalid UTF-8 character" }
// { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 }
-I(\80) // { 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(à \80¿) // { dg-bogus "invalid UTF-8 character <e0><80><bf>" }
-I(Ã \9f\80) // { dg-bogus "invalid UTF-8 character <e0><9f><80>" }
-I(à ¿) // { dg-bogus "invalid UTF-8 character <e0><bf>" }
-I(ì\80) // { dg-bogus "invalid UTF-8 character <ec><80>" }
-I(í €) // { dg-bogus "invalid UTF-8 character <ed><a0><80>" }
-I(ð\80\80\80) // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" }
-I(ð\8f¿¿) // { dg-bogus "invalid UTF-8 character <f0><8f><bf><bf>" }
+I(\80) // { 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(à \80¿) // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" }
+I(Ã \9f\80) // { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" }
+I(à ¿) // { dg-bogus "invalid UTF-8 character '<e0><bf>'" }
+I(ì\80) // { dg-bogus "invalid UTF-8 character '<ec><80>'" }
+I(í €) // { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" }
+I(ð\80\80\80) // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" }
+I(ð\8f¿¿) // { 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" }
// { dg-options "-finput-charset=UTF-8 -pedantic" }
// a\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" }
-// a\80a { 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à \80¿a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-// aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-// að\8f¿¿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\80a { 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à \80¿a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+// aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+// að\8f¿¿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\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" } */
-/* a\80a { 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à \80¿a { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */
-/* aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */
-/* að\8f¿¿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\80a { 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à \80¿a { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */
+/* aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */
+/* að\8f¿¿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 } */
// { dg-options "-finput-charset=UTF-8 -pedantic-errors" }
// a\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" }
-// a\80a { 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à \80¿a { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-// aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-// að\8f¿¿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\80a { 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à \80¿a { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+// aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+// að\8f¿¿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\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" } */
-/* a\80a { 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à \80¿a { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } } */
-/* aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } } */
-/* að\8f¿¿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\80a { 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à \80¿a { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } } */
+/* aà \9f\80a { 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ì\80a { 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ð\80\80\80a { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } } */
+/* að\8f¿¿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 } */
// { dg-options "-finput-charset=UTF-8 -pedantic-errors -Wno-invalid-utf8" }
// a\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" }
-// a\80a { 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à \80¿a { dg-bogus "invalid UTF-8 character <e0><80><bf>" }
-// aà \9f\80a { dg-bogus "invalid UTF-8 character <e0><9f><80>" }
-// aà ¿a { dg-bogus "invalid UTF-8 character <e0><bf>" }
-// aì\80a { dg-bogus "invalid UTF-8 character <ec><80>" }
-// aí €a { dg-bogus "invalid UTF-8 character <ed><a0><80>" }
-// að\80\80\80a { dg-bogus "invalid UTF-8 character <f0><80><80><80>" }
-// að\8f¿¿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\80a { 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à \80¿a { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" }
+// aà \9f\80a { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" }
+// aà ¿a { dg-bogus "invalid UTF-8 character '<e0><bf>'" }
+// aì\80a { dg-bogus "invalid UTF-8 character '<ec><80>'" }
+// aí €a { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" }
+// að\80\80\80a { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" }
+// að\8f¿¿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\80ß¿à €íŸ¿î€€ð€€ô¿¿a { dg-bogus "invalid UTF-8 character" } */
-/* a\80a { 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à \80¿a { dg-bogus "invalid UTF-8 character <e0><80><bf>" } */
-/* aà \9f\80a { dg-bogus "invalid UTF-8 character <e0><9f><80>" } */
-/* aà ¿a { dg-bogus "invalid UTF-8 character <e0><bf>" } */
-/* aì\80a { dg-bogus "invalid UTF-8 character <ec><80>" } */
-/* aí €a { dg-bogus "invalid UTF-8 character <ed><a0><80>" } */
-/* að\80\80\80a { dg-bogus "invalid UTF-8 character <f0><80><80><80>" } */
-/* að\8f¿¿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\80a { 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à \80¿a { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" } */
+/* aà \9f\80a { dg-bogus "invalid UTF-8 character '<e0><9f><80>'" } */
+/* aà ¿a { dg-bogus "invalid UTF-8 character '<e0><bf>'" } */
+/* aì\80a { dg-bogus "invalid UTF-8 character '<ec><80>'" } */
+/* aí €a { dg-bogus "invalid UTF-8 character '<ed><a0><80>'" } */
+/* að\80\80\80a { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" } */
+/* að\8f¿¿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 } */
// { dg-do preprocess { target c++11 } }
// { dg-options "-finput-charset=UTF-8" }
-char32_t a = U'\80'; // { 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'à \80¿'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-char32_t o = U'ð\8f¿¿'; // { 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'\80'; // { 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'à \80¿'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+char32_t o = U'ð\8f¿¿'; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B = U"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P = U"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P = U"ð\8f¿¿"; // { 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"(\80ß¿à €íŸ¿î€€ð€€ô¿¿)"; // { dg-bogus "invalid UTF-8 character" }
-auto B1 = UR"(\80)"; // { 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"(à \80¿)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P1 = UR"(ð\8f¿¿)"; // { 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"(\80)"; // { 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"(à \80¿)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P1 = UR"(ð\8f¿¿)"; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B2 = u8"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P2 = u8"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P2 = u8"ð\8f¿¿"; // { 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 }
// { dg-do preprocess { target c++11 } }
// { dg-options "-finput-charset=UTF-8 -pedantic" }
-char32_t a = U'\80'; // { 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'à \80¿'; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-char32_t o = U'ð\8f¿¿'; // { 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'\80'; // { 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'à \80¿'; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+char32_t o = U'ð\8f¿¿'; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B = U"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P = U"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P = U"ð\8f¿¿"; // { 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"(\80ß¿à €íŸ¿î€€ð€€ô¿¿)"; // { dg-bogus "invalid UTF-8 character" }
-auto B1 = UR"(\80)"; // { 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"(à \80¿)"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P1 = UR"(ð\8f¿¿)"; // { 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"(\80)"; // { 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"(à \80¿)"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P1 = UR"(ð\8f¿¿)"; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B2 = u8"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P2 = u8"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P2 = u8"ð\8f¿¿"; // { 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 }
// { dg-do preprocess { target c++11 } }
// { dg-options "-finput-charset=UTF-8 -pedantic-errors" }
-char32_t a = U'\80'; // { 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'à \80¿'; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-char32_t o = U'ð\8f¿¿'; // { 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'\80'; // { 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'à \80¿'; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+char32_t o = U'ð\8f¿¿'; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B = U"\80"; // { 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"à \80¿"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P = U"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P = U"ð\8f¿¿"; // { 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"(\80ß¿à €íŸ¿î€€ð€€ô¿¿)"; // { dg-bogus "invalid UTF-8 character" }
-auto B1 = UR"(\80)"; // { 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"(à \80¿)"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P1 = UR"(ð\8f¿¿)"; // { 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"(\80)"; // { 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"(à \80¿)"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P1 = UR"(ð\8f¿¿)"; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B2 = u8"\80"; // { 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"à \80¿"; // { dg-error "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-error "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P2 = u8"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-error "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-error "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P2 = u8"ð\8f¿¿"; // { 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 }
// { dg-do preprocess { target c++11 } }
// { dg-options "-finput-charset=UTF-8 -pedantic-errors -Wno-invalid-utf8" }
-char32_t a = U'\80'; // { 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'à \80¿'; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-char32_t o = U'ð\8f¿¿'; // { 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'\80'; // { 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'à \80¿'; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+char32_t j = U'Ã \9f\80'; // { 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'ì\80'; // { 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'ð\80\80\80'; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+char32_t o = U'ð\8f¿¿'; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B = U"\80"; // { 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"à \80¿"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P = U"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K = U"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P = U"ð\8f¿¿"; // { 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"(\80ß¿à €íŸ¿î€€ð€€ô¿¿)"; // { dg-bogus "invalid UTF-8 character" }
-auto B1 = UR"(\80)"; // { 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"(à \80¿)"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P1 = UR"(ð\8f¿¿)"; // { 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"(\80)"; // { 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"(à \80¿)"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K1 = UR"(Ã \9f\80)"; // { 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"(ì\80)"; // { 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"(ð\80\80\80)"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P1 = UR"(ð\8f¿¿)"; // { 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"\80ß¿à €íŸ¿î€€ð€€ô¿¿"; // { dg-bogus "invalid UTF-8 character" }
-auto B2 = u8"\80"; // { 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"à \80¿"; // { dg-bogus "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-bogus "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-auto P2 = u8"ð\8f¿¿"; // { 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"\80"; // { 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"à \80¿"; // { dg-bogus "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+auto K2 = u8"Ã \9f\80"; // { 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"ì\80"; // { 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"ð\80\80\80"; // { dg-bogus "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+auto P2 = u8"ð\8f¿¿"; // { 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 }
#define I(x)
I(\80ß¿à €íŸ¿î€€ð€€ô¿¿) // { dg-bogus "invalid UTF-8 character" }
// { dg-error "is not valid in an identifier" "" { target *-*-* } .-1 }
-I(\80) // { 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(à \80¿) // { dg-warning "invalid UTF-8 character <e0><80><bf>" "" { target c++23 } }
-I(Ã \9f\80) // { 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(ì\80) // { 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(ð\80\80\80) // { dg-warning "invalid UTF-8 character <f0><80><80><80>" "" { target c++23 } }
-I(ð\8f¿¿) // { dg-warning "invalid UTF-8 character <f0><8f><bf><bf>" "" { target c++23 } }
+I(\80) // { 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(à \80¿) // { dg-warning "invalid UTF-8 character '<e0><80><bf>'" "" { target c++23 } }
+I(Ã \9f\80) // { 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(ì\80) // { 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(ð\80\80\80) // { dg-warning "invalid UTF-8 character '<f0><80><80><80>'" "" { target c++23 } }
+I(ð\8f¿¿) // { 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" }
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 }
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 }
_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 }
_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 }
/* 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)
{
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" } */
}
#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. */
#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. */
#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. */
/* { 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. */
/* { 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 /\
/* { 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 } */
/* { 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 } */
/* { 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 } */
#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
/* { 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 } */
#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__
#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__
#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 } */
/* 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
#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
#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
#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
#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
#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
#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
#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
/* { 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 } */
/* { 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 } */
/* { 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 } */
/* { 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 } */
#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" } */
/* 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" } */
/* { 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. */
/* { 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
// { 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 }
// { 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 }
// { 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 }
// { 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." }
// { 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." }
// { 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
// { 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
// { 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
// { 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
// { 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=." }
// { 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=." }
// { 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=." }
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
^~~~~~~~~~~~~~~~~~~~~~~~~
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
^~~~~~~~~~~~~~~~~~~~~
// { 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 }
// { 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 }
// { 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." }
// { 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." }
// { dg-do preprocess }
// { dg-options "-std=gnu99 -fdiagnostics-show-option -trigraphs -Wtrigraphs" }
-??= // { dg-warning "trigraph \\?\\?= converted to # .-Wtrigraphs." }
+??= // { dg-warning "trigraph '\\?\\?=' converted to '#' .-Wtrigraphs." }
// { 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." }
// { 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." }
// { 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." }
// { 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
// { 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
// { 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." }
// { 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." }
#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 } */
--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
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;
}
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;
*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
{
&& (!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
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
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;
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;
}
}
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;
}
{
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;
(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;
}
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);
}
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++;
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;
}
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++;
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;
}
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);
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);
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;
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);
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);
}
}
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;
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;
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");
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);
}
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))
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);
}
|| (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
{
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);
}
}
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");
{
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))
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;
}
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;
}
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
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);
{
if (params->has_embed)
{
- cpp_error (pfile, CPP_DL_ERROR, "expected ')'");
+ cpp_error (pfile, CPP_DL_ERROR, "expected %<)%>");
return false;
}
}
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))
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;
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);
}
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)
{
{
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;
}
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
{
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;
}
{
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);
}
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;
}
&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;
}
}
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;
}
/* 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;
}
}
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;
}
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;
}
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;
}
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;
}
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;
}
{
if (_cpp_in_main_source_file (pfile))
cpp_warning (pfile, CPP_W_PRAGMA_ONCE_OUTSIDE_HEADER,
- "'#pragma once' in main file");
+ "%<#pragma once%> in main file");
check_eol (pfile, false);
_cpp_mark_file_once_only (pfile, pfile->buffer->file);
{
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;
{
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;
if (tok->type != CPP_NAME)
{
cpp_error (pfile, CPP_DL_ERROR,
- "invalid #pragma GCC poison directive");
+ "invalid %<#pragma GCC poison%> directive");
break;
}
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;
{
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);
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;
}
return 1;
}
cpp_error (pfile, CPP_DL_ERROR,
- "_Pragma takes a parenthesized string literal");
+ "%<_Pragma%> takes a parenthesized string literal");
return 0;
}
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");
}
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");
{
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;
{
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;
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. */
return true;
cpp_error_with_line (pfile, CPP_DL_ERROR, pred_loc, 0,
- "missing '(' after predicate");
+ "missing %<(%> after predicate");
return false;
}
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;
}
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;
}
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;
}
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
/* 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,
/* 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,
/* 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,
{
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)
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;
}
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;
}
}
&& 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.
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;
}
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;
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;
}
}
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);
}
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);
}
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++;
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;
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));
}
|| 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. */
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;
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);
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;
}
{
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)
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,
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));
}
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
{
cpp_error_with_line (pfile, CPP_DL_ERROR,
top->token->src_loc,
- 0, "missing ')' in expression");
+ 0, "missing %<)%> in expression");
return 0;
}
top--;
/* 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:
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;
}
{
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));
}
/* 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,
" 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)
{
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;
{
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;
if (pfile->cb.get_suggestion (pfile, mi_cmacro, names)
&& cpp_warning_with_line (pfile, CPP_W_HEADER_GUARD,
pfile->mi_loc, 0,
- "header guard \"%s\" followed by "
- "\"#define\" of a different macro",
+ "header guard %qs followed by "
+ "%<#define%> of a different macro",
mi_cmacro))
cpp_error_at (pfile, CPP_DL_NOTE, pfile->mi_def_loc,
- "\"%s\" is defined here; did you mean \"%s\"?",
+ "%qs is defined here; did you mean %qs?",
mi_def_cmacro, mi_cmacro);
}
}
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. */
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". */
/* 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. */
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 *);
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,
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))
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
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);
}
}
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
{
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));
}
}
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;
}
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;
}
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;
}
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;
}
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')
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);
}
}
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;
{
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)
/* __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");
}
}
/* 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);
{
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");
}
/* 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));
}
&& _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));
}
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;
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;
}
{
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;
}
{
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;
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;
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;
}
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;
}
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;
}
(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;
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);
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)
{
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;
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);
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);
if (backslash_count & 1)
{
cpp_error (pfile, CPP_DL_WARNING,
- "invalid string literal, ignoring final '\\'");
+ "invalid string literal, ignoring final %<\\%>");
dest--;
}
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;
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
{
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);
/* 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;
}
{
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;
{
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;
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;
}
}
= (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);
}
&& !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;
}
}
{
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;
}
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;
}
{
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;
}
}
{
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;
}
{
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;
}
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;
}
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;