diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/utf-gnuxx98.C')
-rw-r--r-- | gcc/testsuite/g++.dg/ext/utf-gnuxx98.C | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/utf-gnuxx98.C b/gcc/testsuite/g++.dg/ext/utf-gnuxx98.C new file mode 100644 index 000000000..fc8068b7e --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/utf-gnuxx98.C @@ -0,0 +1,29 @@ +/* Contributed by Kris Van Hees <kris.van.hees@oracle.com> */ +/* Expected errors for char16_t/char32_t in gnu++98. */ +/* Ensure u and U prefixes are parsed as separate tokens in gnu++98. */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu++98" } */ + +const static char16_t c0 = 'a'; /* { dg-error "not name a type" } */ +const static char32_t c1 = 'a'; /* { dg-error "not name a type" } */ + +const unsigned short c2 = u'a'; /* { dg-error "not declared" } */ + /* { dg-error "expected ',' or ';'" "" { target *-*-* } 10 } */ +const unsigned long c3 = U'a'; /* { dg-error "not declared" } */ + /* { dg-error "expected ',' or ';'" "" { target *-*-* } 12 } */ + +#define u 1 + +#define U 2 + + +const unsigned short c5 = u'a'; +const unsigned long c6 = U'a'; + +#undef u +#undef U +#define u "a" +#define U "b" + +const void *s0 = u"a"; +const void *s1 = U"a"; + +int main () {} |