annotate gcc/testsuite/c-c++-common/raw-string-15.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR preprocessor/57620
kono
parents:
diff changeset
2 // { dg-do run }
kono
parents:
diff changeset
3 // { dg-require-effective-target wchar }
kono
parents:
diff changeset
4 // { dg-options "-std=gnu99 -Wno-c++-compat -Wtrigraphs" { target c } }
kono
parents:
diff changeset
5 // { dg-options "-std=gnu++11 -Wtrigraphs" { target c++ } }
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 #ifndef __cplusplus
kono
parents:
diff changeset
8 #include <wchar.h>
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 typedef __CHAR16_TYPE__ char16_t;
kono
parents:
diff changeset
11 typedef __CHAR32_TYPE__ char32_t;
kono
parents:
diff changeset
12 #endif
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 #define R
kono
parents:
diff changeset
15 #define u
kono
parents:
diff changeset
16 #define uR
kono
parents:
diff changeset
17 #define U
kono
parents:
diff changeset
18 #define UR
kono
parents:
diff changeset
19 #define u8
kono
parents:
diff changeset
20 #define u8R
kono
parents:
diff changeset
21 #define L
kono
parents:
diff changeset
22 #define LR
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 const char s00[] = R"??=??(??<??>??)??'??!??-\
kono
parents:
diff changeset
25 (a)#[{}]^|~";
kono
parents:
diff changeset
26 )??=??";
kono
parents:
diff changeset
27 const char s01[] = R"a(
kono
parents:
diff changeset
28 )\
kono
parents:
diff changeset
29 a"
kono
parents:
diff changeset
30 )a";
kono
parents:
diff changeset
31 const char s02[] = R"a(
kono
parents:
diff changeset
32 )a\
kono
parents:
diff changeset
33 "
kono
parents:
diff changeset
34 )a";
kono
parents:
diff changeset
35 const char s03[] = R"ab(
kono
parents:
diff changeset
36 )a\
kono
parents:
diff changeset
37 b"
kono
parents:
diff changeset
38 )ab";
kono
parents:
diff changeset
39 const char s04[] = R"a??/(x)a??/";
kono
parents:
diff changeset
40 const char s05[] = R"abcdefghijklmn??(abc)abcdefghijklmn??";
kono
parents:
diff changeset
41 const char s06[] = R"abcdefghijklm??/(abc)abcdefghijklm??/";
kono
parents:
diff changeset
42 const char s07[] = R"abc(??)\
kono
parents:
diff changeset
43 abc";)abc";
kono
parents:
diff changeset
44 const char s08[] = R"def(de)\
kono
parents:
diff changeset
45 def";)def";
kono
parents:
diff changeset
46 const char s09[] = R"a(??)\
kono
parents:
diff changeset
47 a"
kono
parents:
diff changeset
48 )a";
kono
parents:
diff changeset
49 const char s10[] = R"a(??)a\
kono
parents:
diff changeset
50 "
kono
parents:
diff changeset
51 )a";
kono
parents:
diff changeset
52 const char s11[] = R"ab(??)a\
kono
parents:
diff changeset
53 b"
kono
parents:
diff changeset
54 )ab";
kono
parents:
diff changeset
55 const char s12[] = R"a#(a#)a??=)a#";
kono
parents:
diff changeset
56 const char s13[] = R"a#(??)a??=??)a#";
kono
parents:
diff changeset
57 const char s14[] = R"??/(x)??/
kono
parents:
diff changeset
58 ";)??/";
kono
parents:
diff changeset
59 const char s15[] = R"??/(??)??/
kono
parents:
diff changeset
60 ";)??/";
kono
parents:
diff changeset
61 const char s16[] = R"??(??)??";
kono
parents:
diff changeset
62 const char s17[] = R"?(?)??)?";
kono
parents:
diff changeset
63 const char s18[] = R"??(??)??)??)??";
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 const char16_t u00[] = uR"??=??(??<??>??)??'??!??-\
kono
parents:
diff changeset
66 (a)#[{}]^|~";
kono
parents:
diff changeset
67 )??=??";
kono
parents:
diff changeset
68 const char16_t u01[] = uR"a(
kono
parents:
diff changeset
69 )\
kono
parents:
diff changeset
70 a"
kono
parents:
diff changeset
71 )a";
kono
parents:
diff changeset
72 const char16_t u02[] = uR"a(
kono
parents:
diff changeset
73 )a\
kono
parents:
diff changeset
74 "
kono
parents:
diff changeset
75 )a";
kono
parents:
diff changeset
76 const char16_t u03[] = uR"ab(
kono
parents:
diff changeset
77 )a\
kono
parents:
diff changeset
78 b"
kono
parents:
diff changeset
79 )ab";
kono
parents:
diff changeset
80 const char16_t u04[] = uR"a??/(x)a??/";
kono
parents:
diff changeset
81 const char16_t u05[] = uR"abcdefghijklmn??(abc)abcdefghijklmn??";
kono
parents:
diff changeset
82 const char16_t u06[] = uR"abcdefghijklm??/(abc)abcdefghijklm??/";
kono
parents:
diff changeset
83 const char16_t u07[] = uR"abc(??)\
kono
parents:
diff changeset
84 abc";)abc";
kono
parents:
diff changeset
85 const char16_t u08[] = uR"def(de)\
kono
parents:
diff changeset
86 def";)def";
kono
parents:
diff changeset
87 const char16_t u09[] = uR"a(??)\
kono
parents:
diff changeset
88 a"
kono
parents:
diff changeset
89 )a";
kono
parents:
diff changeset
90 const char16_t u10[] = uR"a(??)a\
kono
parents:
diff changeset
91 "
kono
parents:
diff changeset
92 )a";
kono
parents:
diff changeset
93 const char16_t u11[] = uR"ab(??)a\
kono
parents:
diff changeset
94 b"
kono
parents:
diff changeset
95 )ab";
kono
parents:
diff changeset
96 const char16_t u12[] = uR"a#(a#)a??=)a#";
kono
parents:
diff changeset
97 const char16_t u13[] = uR"a#(??)a??=??)a#";
kono
parents:
diff changeset
98 const char16_t u14[] = uR"??/(x)??/
kono
parents:
diff changeset
99 ";)??/";
kono
parents:
diff changeset
100 const char16_t u15[] = uR"??/(??)??/
kono
parents:
diff changeset
101 ";)??/";
kono
parents:
diff changeset
102 const char16_t u16[] = uR"??(??)??";
kono
parents:
diff changeset
103 const char16_t u17[] = uR"?(?)??)?";
kono
parents:
diff changeset
104 const char16_t u18[] = uR"??(??)??)??)??";
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 const char32_t U00[] = UR"??=??(??<??>??)??'??!??-\
kono
parents:
diff changeset
107 (a)#[{}]^|~";
kono
parents:
diff changeset
108 )??=??";
kono
parents:
diff changeset
109 const char32_t U01[] = UR"a(
kono
parents:
diff changeset
110 )\
kono
parents:
diff changeset
111 a"
kono
parents:
diff changeset
112 )a";
kono
parents:
diff changeset
113 const char32_t U02[] = UR"a(
kono
parents:
diff changeset
114 )a\
kono
parents:
diff changeset
115 "
kono
parents:
diff changeset
116 )a";
kono
parents:
diff changeset
117 const char32_t U03[] = UR"ab(
kono
parents:
diff changeset
118 )a\
kono
parents:
diff changeset
119 b"
kono
parents:
diff changeset
120 )ab";
kono
parents:
diff changeset
121 const char32_t U04[] = UR"a??/(x)a??/";
kono
parents:
diff changeset
122 const char32_t U05[] = UR"abcdefghijklmn??(abc)abcdefghijklmn??";
kono
parents:
diff changeset
123 const char32_t U06[] = UR"abcdefghijklm??/(abc)abcdefghijklm??/";
kono
parents:
diff changeset
124 const char32_t U07[] = UR"abc(??)\
kono
parents:
diff changeset
125 abc";)abc";
kono
parents:
diff changeset
126 const char32_t U08[] = UR"def(de)\
kono
parents:
diff changeset
127 def";)def";
kono
parents:
diff changeset
128 const char32_t U09[] = UR"a(??)\
kono
parents:
diff changeset
129 a"
kono
parents:
diff changeset
130 )a";
kono
parents:
diff changeset
131 const char32_t U10[] = UR"a(??)a\
kono
parents:
diff changeset
132 "
kono
parents:
diff changeset
133 )a";
kono
parents:
diff changeset
134 const char32_t U11[] = UR"ab(??)a\
kono
parents:
diff changeset
135 b"
kono
parents:
diff changeset
136 )ab";
kono
parents:
diff changeset
137 const char32_t U12[] = UR"a#(a#)a??=)a#";
kono
parents:
diff changeset
138 const char32_t U13[] = UR"a#(??)a??=??)a#";
kono
parents:
diff changeset
139 const char32_t U14[] = UR"??/(x)??/
kono
parents:
diff changeset
140 ";)??/";
kono
parents:
diff changeset
141 const char32_t U15[] = UR"??/(??)??/
kono
parents:
diff changeset
142 ";)??/";
kono
parents:
diff changeset
143 const char32_t U16[] = UR"??(??)??";
kono
parents:
diff changeset
144 const char32_t U17[] = UR"?(?)??)?";
kono
parents:
diff changeset
145 const char32_t U18[] = UR"??(??)??)??)??";
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 const wchar_t L00[] = LR"??=??(??<??>??)??'??!??-\
kono
parents:
diff changeset
148 (a)#[{}]^|~";
kono
parents:
diff changeset
149 )??=??";
kono
parents:
diff changeset
150 const wchar_t L01[] = LR"a(
kono
parents:
diff changeset
151 )\
kono
parents:
diff changeset
152 a"
kono
parents:
diff changeset
153 )a";
kono
parents:
diff changeset
154 const wchar_t L02[] = LR"a(
kono
parents:
diff changeset
155 )a\
kono
parents:
diff changeset
156 "
kono
parents:
diff changeset
157 )a";
kono
parents:
diff changeset
158 const wchar_t L03[] = LR"ab(
kono
parents:
diff changeset
159 )a\
kono
parents:
diff changeset
160 b"
kono
parents:
diff changeset
161 )ab";
kono
parents:
diff changeset
162 const wchar_t L04[] = LR"a??/(x)a??/";
kono
parents:
diff changeset
163 const wchar_t L05[] = LR"abcdefghijklmn??(abc)abcdefghijklmn??";
kono
parents:
diff changeset
164 const wchar_t L06[] = LR"abcdefghijklm??/(abc)abcdefghijklm??/";
kono
parents:
diff changeset
165 const wchar_t L07[] = LR"abc(??)\
kono
parents:
diff changeset
166 abc";)abc";
kono
parents:
diff changeset
167 const wchar_t L08[] = LR"def(de)\
kono
parents:
diff changeset
168 def";)def";
kono
parents:
diff changeset
169 const wchar_t L09[] = LR"a(??)\
kono
parents:
diff changeset
170 a"
kono
parents:
diff changeset
171 )a";
kono
parents:
diff changeset
172 const wchar_t L10[] = LR"a(??)a\
kono
parents:
diff changeset
173 "
kono
parents:
diff changeset
174 )a";
kono
parents:
diff changeset
175 const wchar_t L11[] = LR"ab(??)a\
kono
parents:
diff changeset
176 b"
kono
parents:
diff changeset
177 )ab";
kono
parents:
diff changeset
178 const wchar_t L12[] = LR"a#(a#)a??=)a#";
kono
parents:
diff changeset
179 const wchar_t L13[] = LR"a#(??)a??=??)a#";
kono
parents:
diff changeset
180 const wchar_t L14[] = LR"??/(x)??/
kono
parents:
diff changeset
181 ";)??/";
kono
parents:
diff changeset
182 const wchar_t L15[] = LR"??/(??)??/
kono
parents:
diff changeset
183 ";)??/";
kono
parents:
diff changeset
184 const wchar_t L16[] = LR"??(??)??";
kono
parents:
diff changeset
185 const wchar_t L17[] = LR"?(?)??)?";
kono
parents:
diff changeset
186 const wchar_t L18[] = LR"??(??)??)??)??";
kono
parents:
diff changeset
187
kono
parents:
diff changeset
188 int
kono
parents:
diff changeset
189 main (void)
kono
parents:
diff changeset
190 {
kono
parents:
diff changeset
191 #define TEST(str, val) \
kono
parents:
diff changeset
192 if (sizeof (str) != sizeof (val) \
kono
parents:
diff changeset
193 || __builtin_memcmp (str, val, sizeof (str)) != 0) \
kono
parents:
diff changeset
194 __builtin_abort ()
kono
parents:
diff changeset
195 TEST (s00, "??""<??"">??"")??""'??""!??""-\\\n(a)#[{}]^|~\";\n");
kono
parents:
diff changeset
196 TEST (s01, "\n)\\\na\"\n");
kono
parents:
diff changeset
197 TEST (s02, "\n)a\\\n\"\n");
kono
parents:
diff changeset
198 TEST (s03, "\n)a\\\nb\"\n");
kono
parents:
diff changeset
199 TEST (s04, "x");
kono
parents:
diff changeset
200 TEST (s05, "abc");
kono
parents:
diff changeset
201 TEST (s06, "abc");
kono
parents:
diff changeset
202 TEST (s07, "??"")\\\nabc\";");
kono
parents:
diff changeset
203 TEST (s08, "de)\\\ndef\";");
kono
parents:
diff changeset
204 TEST (s09, "??"")\\\na\"\n");
kono
parents:
diff changeset
205 TEST (s10, "??"")a\\\n\"\n");
kono
parents:
diff changeset
206 TEST (s11, "??"")a\\\nb\"\n");
kono
parents:
diff changeset
207 TEST (s12, "a#)a??""=");
kono
parents:
diff changeset
208 TEST (s13, "??"")a??""=??");
kono
parents:
diff changeset
209 TEST (s14, "x)??""/\n\";");
kono
parents:
diff changeset
210 TEST (s15, "??"")??""/\n\";");
kono
parents:
diff changeset
211 TEST (s16, "??");
kono
parents:
diff changeset
212 TEST (s17, "?)??");
kono
parents:
diff changeset
213 TEST (s18, "??"")??"")??");
kono
parents:
diff changeset
214 TEST (u00, u"??""<??"">??"")??""'??""!??""-\\\n(a)#[{}]^|~\";\n");
kono
parents:
diff changeset
215 TEST (u01, u"\n)\\\na\"\n");
kono
parents:
diff changeset
216 TEST (u02, u"\n)a\\\n\"\n");
kono
parents:
diff changeset
217 TEST (u03, u"\n)a\\\nb\"\n");
kono
parents:
diff changeset
218 TEST (u04, u"x");
kono
parents:
diff changeset
219 TEST (u05, u"abc");
kono
parents:
diff changeset
220 TEST (u06, u"abc");
kono
parents:
diff changeset
221 TEST (u07, u"??"")\\\nabc\";");
kono
parents:
diff changeset
222 TEST (u08, u"de)\\\ndef\";");
kono
parents:
diff changeset
223 TEST (u09, u"??"")\\\na\"\n");
kono
parents:
diff changeset
224 TEST (u10, u"??"")a\\\n\"\n");
kono
parents:
diff changeset
225 TEST (u11, u"??"")a\\\nb\"\n");
kono
parents:
diff changeset
226 TEST (u12, u"a#)a??""=");
kono
parents:
diff changeset
227 TEST (u13, u"??"")a??""=??");
kono
parents:
diff changeset
228 TEST (u14, u"x)??""/\n\";");
kono
parents:
diff changeset
229 TEST (u15, u"??"")??""/\n\";");
kono
parents:
diff changeset
230 TEST (u16, u"??");
kono
parents:
diff changeset
231 TEST (u17, u"?)??");
kono
parents:
diff changeset
232 TEST (u18, u"??"")??"")??");
kono
parents:
diff changeset
233 TEST (U00, U"??""<??"">??"")??""'??""!??""-\\\n(a)#[{}]^|~\";\n");
kono
parents:
diff changeset
234 TEST (U01, U"\n)\\\na\"\n");
kono
parents:
diff changeset
235 TEST (U02, U"\n)a\\\n\"\n");
kono
parents:
diff changeset
236 TEST (U03, U"\n)a\\\nb\"\n");
kono
parents:
diff changeset
237 TEST (U04, U"x");
kono
parents:
diff changeset
238 TEST (U05, U"abc");
kono
parents:
diff changeset
239 TEST (U06, U"abc");
kono
parents:
diff changeset
240 TEST (U07, U"??"")\\\nabc\";");
kono
parents:
diff changeset
241 TEST (U08, U"de)\\\ndef\";");
kono
parents:
diff changeset
242 TEST (U09, U"??"")\\\na\"\n");
kono
parents:
diff changeset
243 TEST (U10, U"??"")a\\\n\"\n");
kono
parents:
diff changeset
244 TEST (U11, U"??"")a\\\nb\"\n");
kono
parents:
diff changeset
245 TEST (U12, U"a#)a??""=");
kono
parents:
diff changeset
246 TEST (U13, U"??"")a??""=??");
kono
parents:
diff changeset
247 TEST (U14, U"x)??""/\n\";");
kono
parents:
diff changeset
248 TEST (U15, U"??"")??""/\n\";");
kono
parents:
diff changeset
249 TEST (U16, U"??");
kono
parents:
diff changeset
250 TEST (U17, U"?)??");
kono
parents:
diff changeset
251 TEST (U18, U"??"")??"")??");
kono
parents:
diff changeset
252 TEST (L00, L"??""<??"">??"")??""'??""!??""-\\\n(a)#[{}]^|~\";\n");
kono
parents:
diff changeset
253 TEST (L01, L"\n)\\\na\"\n");
kono
parents:
diff changeset
254 TEST (L02, L"\n)a\\\n\"\n");
kono
parents:
diff changeset
255 TEST (L03, L"\n)a\\\nb\"\n");
kono
parents:
diff changeset
256 TEST (L04, L"x");
kono
parents:
diff changeset
257 TEST (L05, L"abc");
kono
parents:
diff changeset
258 TEST (L06, L"abc");
kono
parents:
diff changeset
259 TEST (L07, L"??"")\\\nabc\";");
kono
parents:
diff changeset
260 TEST (L08, L"de)\\\ndef\";");
kono
parents:
diff changeset
261 TEST (L09, L"??"")\\\na\"\n");
kono
parents:
diff changeset
262 TEST (L10, L"??"")a\\\n\"\n");
kono
parents:
diff changeset
263 TEST (L11, L"??"")a\\\nb\"\n");
kono
parents:
diff changeset
264 TEST (L12, L"a#)a??""=");
kono
parents:
diff changeset
265 TEST (L13, L"??"")a??""=??");
kono
parents:
diff changeset
266 TEST (L14, L"x)??""/\n\";");
kono
parents:
diff changeset
267 TEST (L15, L"??"")??""/\n\";");
kono
parents:
diff changeset
268 TEST (L16, L"??");
kono
parents:
diff changeset
269 TEST (L17, L"?)??");
kono
parents:
diff changeset
270 TEST (L18, L"??"")??"")??");
kono
parents:
diff changeset
271 return 0;
kono
parents:
diff changeset
272 }