1 |
295 |
jeremybenn |
// { dg-do run }
|
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++ } }
|
5 |
|
|
|
6 |
|
|
#ifndef __cplusplus
|
7 |
|
|
#include <wchar.h>
|
8 |
|
|
|
9 |
|
|
typedef __CHAR16_TYPE__ char16_t;
|
10 |
|
|
typedef __CHAR32_TYPE__ char32_t;
|
11 |
|
|
#endif
|
12 |
|
|
|
13 |
|
|
#define R
|
14 |
|
|
#define u
|
15 |
|
|
#define uR
|
16 |
|
|
#define U
|
17 |
|
|
#define UR
|
18 |
|
|
#define u8
|
19 |
|
|
#define u8R
|
20 |
|
|
#define L
|
21 |
|
|
#define LR
|
22 |
|
|
|
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"??=??(??<??>??)??'??!??-\
|
36 |
|
|
(a)#[{}]^|~";
|
37 |
|
|
|
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"??=??(??<??>??)??'??!??-\
|
48 |
|
|
(a)#[{}]^|~";
|
49 |
|
|
|
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"??=??(??<??>??)??'??!??-\
|
60 |
|
|
(a)#[{}]^|~";
|
61 |
|
|
|
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"??=??(??<??>??)??'??!??-\
|
72 |
|
|
(a)#[{}]^|~";
|
73 |
|
|
|
74 |
|
|
int
|
75 |
|
|
main (void)
|
76 |
|
|
{
|
77 |
|
|
#define TEST(str, val) \
|
78 |
|
|
if (sizeof (str) != sizeof (val) \
|
79 |
|
|
|| __builtin_memcmp (str, val, sizeof (str)) != 0) \
|
80 |
|
|
__builtin_abort ()
|
81 |
|
|
TEST (s00, "a(b)");
|
82 |
|
|
TEST (s01, "(a)b");
|
83 |
|
|
TEST (s02, "ab");
|
84 |
|
|
TEST (s03, "a(b)");
|
85 |
|
|
TEST (s04, "(a)b");
|
86 |
|
|
TEST (s05, "ab");
|
87 |
|
|
TEST (s06, "a(b)");
|
88 |
|
|
TEST (s07, "(a)b");
|
89 |
|
|
TEST (s08, "ab");
|
90 |
|
|
TEST (s09, "a(b)");
|
91 |
|
|
TEST (s10, "(a)b");
|
92 |
|
|
TEST (s11, "ab");
|
93 |
|
|
TEST (s12, "a");
|
94 |
|
|
TEST (u03, u"a(b)");
|
95 |
|
|
TEST (u04, u"(a)b");
|
96 |
|
|
TEST (u05, u"ab");
|
97 |
|
|
TEST (u06, u"a(b)");
|
98 |
|
|
TEST (u07, u"(a)b");
|
99 |
|
|
TEST (u08, u"ab");
|
100 |
|
|
TEST (u09, u"a(b)");
|
101 |
|
|
TEST (u10, u"(a)b");
|
102 |
|
|
TEST (u11, u"ab");
|
103 |
|
|
TEST (u12, u"a");
|
104 |
|
|
TEST (U03, U"a(b)");
|
105 |
|
|
TEST (U04, U"(a)b");
|
106 |
|
|
TEST (U05, U"ab");
|
107 |
|
|
TEST (U06, U"a(b)");
|
108 |
|
|
TEST (U07, U"(a)b");
|
109 |
|
|
TEST (U08, U"ab");
|
110 |
|
|
TEST (U09, U"a(b)");
|
111 |
|
|
TEST (U10, U"(a)b");
|
112 |
|
|
TEST (U11, U"ab");
|
113 |
|
|
TEST (U12, U"a");
|
114 |
|
|
TEST (L03, L"a(b)");
|
115 |
|
|
TEST (L04, L"(a)b");
|
116 |
|
|
TEST (L05, L"ab");
|
117 |
|
|
TEST (L06, L"a(b)");
|
118 |
|
|
TEST (L07, L"(a)b");
|
119 |
|
|
TEST (L08, L"ab");
|
120 |
|
|
TEST (L09, L"a(b)");
|
121 |
|
|
TEST (L10, L"(a)b");
|
122 |
|
|
TEST (L11, L"ab");
|
123 |
|
|
TEST (L12, L"a");
|
124 |
|
|
return 0;
|
125 |
|
|
}
|