diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/utf32-1.C')
-rw-r--r-- | gcc/testsuite/g++.dg/ext/utf32-1.C | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/utf32-1.C b/gcc/testsuite/g++.dg/ext/utf32-1.C new file mode 100644 index 000000000..98465a0a1 --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/utf32-1.C @@ -0,0 +1,42 @@ +/* Contributed by Kris Van Hees <kris.van.hees@oracle.com> */ +/* Test the support for char32_t character constants. */ +/* { dg-do run } */ +/* { dg-options "-std=c++0x -Wall -Werror" } */ + +extern "C" void abort (void); + +const static char32_t c0 = U'a'; +const static char32_t c1 = U'\0'; +const static char32_t c2 = U'\u0024'; +const static char32_t c3 = U'\u2029'; +const static char32_t c4 = U'\U00064321'; + +#define A 0x00000061 +#define D 0x00000024 +#define X 0x00002029 +#define Y 0x00064321 + +int main () +{ + if (sizeof (U'a') != sizeof (char32_t)) + abort (); + if (sizeof (U'\0') != sizeof (char32_t)) + abort (); + if (sizeof (U'\u0024') != sizeof (char32_t)) + abort (); + if (sizeof (U'\u2029') != sizeof (char32_t)) + abort (); + if (sizeof (U'\U00064321') != sizeof (char32_t)) + abort (); + + if (c0 != A) + abort (); + if (c1 != 0x0000) + abort (); + if (c2 != D) + abort (); + if (c3 != X) + abort (); + if (c4 != Y) + abort (); +} |