2 // { dg-require-effective-target wchar }
3 // { dg-options "-std=gnu99 -Wno-c++-compat -trigraphs" { target c } }
4 // { dg-options "-std=c++0x" { target c++ } }
9 typedef __CHAR16_TYPE__ char16_t
;
10 typedef __CHAR32_TYPE__ char32_t
;
23 const char s00
[] = R
"(a)" "(b)";
24 const char s01
[] = "(a)" R
"*(b)*";
25 const char s02
[] = R
"(a)" R
"(b)";
26 const char s03
[] = R
"-(a)-" u8
"(b)";
27 const char s04
[] = "(a)" u8R
"MNOPQRSTUVWXYZ(b)MNOPQRSTUVWXYZ";
28 const char s05
[] = R
"(a)" u8R
"wxyzABCDEFGHIJKL(b)wxyzABCDEFGHIJKL";
29 const char s06
[] = u8R
";[(a);[" "(b)";
30 const char s07
[] = u8
"(a)" R
"(b)";
31 const char s08
[] = u8R
"(a)" R
"_{}#[]<>%:;.?*+-(b)_{}#[]<>%:;.?*+-";
32 const char s09
[] = u8R
"/^&|~!=,"'(a)/^&|~!=,"'" u8"(b
)";
33 const char s10[] = u8"(a
)" u8R"0123456789abcdef(b
)0123456789abcdef
";
34 const char s11[] = u8R"ghijklmnopqrstuv(a
)ghijklmnopqrstuv
" u8R"w(b
)w
";
35 const char s12[] = R"??=??(??<??>??)??'??!??-\
38 const char16_t u03[] = R"-(a)-" u"(b)";
39 const char16_t u04[] = "(a)" uR"MNOPQRSTUVWXYZ(b)MNOPQRSTUVWXYZ";
40 const char16_t u05[] = R"(a)" uR"wxyzABCDEFGHIJKL(b)wxyzABCDEFGHIJKL";
41 const char16_t u06[] = uR";[(a);[" "(b)";
42 const char16_t u07[] = u"(a)" R"(b)";
43 const char16_t u08[] = uR"(a)" R"_{}#[]<>%:;.?*+-(b)_{}#[]<>%:;.?*+-";
44 const char16_t u09[] = uR"/^&|~!=,"'(a
)/^&|~!=,"'" u
"(b)";
45 const char16_t u10
[] = u
"(a)" uR
"0123456789abcdef(b)0123456789abcdef";
46 const char16_t u11
[] = uR
"ghijklmnopqrstuv(a)ghijklmnopqrstuv" uR
"w(b)w";
47 const char16_t u12
[] = uR
"??=??(??<??>??)??'??!??-\
50 const char32_t U03
[] = R
"-(a)-" U
"(b)";
51 const char32_t U04
[] = "(a)" UR
"MNOPQRSTUVWXYZ(b)MNOPQRSTUVWXYZ";
52 const char32_t U05
[] = R
"(a)" UR
"wxyzABCDEFGHIJKL(b)wxyzABCDEFGHIJKL";
53 const char32_t U06
[] = UR
";[(a);[" "(b)";
54 const char32_t U07
[] = U
"(a)" R
"(b)";
55 const char32_t U08
[] = UR
"(a)" R
"_{}#[]<>%:;.?*+-(b)_{}#[]<>%:;.?*+-";
56 const char32_t U09
[] = UR
"/^&|~!=,"'(a)/^&|~!=,"'" U"(b
)";
57 const char32_t U10[] = U"(a
)" UR"0123456789abcdef(b
)0123456789abcdef
";
58 const char32_t U11[] = UR"ghijklmnopqrstuv(a
)ghijklmnopqrstuv
" UR"w(b
)w
";
59 const char32_t U12[] = UR"??=??(??<??>??)??'??!??-\
62 const wchar_t L03[] = R"-(a)-" L"(b)";
63 const wchar_t L04[] = "(a)" LR"MNOPQRSTUVWXYZ(b)MNOPQRSTUVWXYZ";
64 const wchar_t L05[] = R"(a)" LR"wxyzABCDEFGHIJKL(b)wxyzABCDEFGHIJKL";
65 const wchar_t L06[] = LR";[(a);[" "(b)";
66 const wchar_t L07[] = L"(a)" R"(b)";
67 const wchar_t L08[] = LR"(a)" R"_{}#[]<>%:;.?*+-(b)_{}#[]<>%:;.?*+-";
68 const wchar_t L09[] = LR"/^&|~!=,"'(a
)/^&|~!=,"'" L
"(b)";
69 const wchar_t L10
[] = L
"(a)" LR
"0123456789abcdef(b)0123456789abcdef";
70 const wchar_t L11
[] = LR
"ghijklmnopqrstuv(a)ghijklmnopqrstuv" LR
"w(b)w";
71 const wchar_t L12
[] = LR
"??=??(??<??>??)??'??!??-\
77 #define TEST(str, val) \
78 if (sizeof (str) != sizeof (val) \
79 || __builtin_memcmp (str, val, sizeof (str)) != 0) \