1 // { dg-do compile }
2
3 typedef long unsigned int size_t;
4 extern void fancy_abort () __attribute__ ((__noreturn__));
5 class cpp_string_location_reader { };
6 class cpp_substring_ranges {
7 public:
8 void add_range ();
9 };
10 typedef unsigned char uchar;
11 void
cpp_interpret_string_1(size_t count,cpp_string_location_reader * loc_readers,cpp_substring_ranges * ranges,uchar c,const uchar * p)12 cpp_interpret_string_1 (size_t count, cpp_string_location_reader *loc_readers, cpp_substring_ranges *ranges, uchar c, const uchar *p)
13 {
14 size_t i;
15 ((void)(!((loc_readers != __null ) == (ranges != __null )) ? fancy_abort (), 0 : 0));
16 cpp_string_location_reader *loc_reader = __null;
17 for (i = 0; i < count; i++)
18 {
19 if (loc_readers) loc_reader = &loc_readers[i];
20 if (*p == 'R') continue;
21 for (;;)
22 {
23 switch (c) {
24 case 'x': if (ranges) ranges->add_range (); break;
25 case '7': ((void)(!((loc_reader != __null ) == (ranges != __null )) ? fancy_abort (), 0 : 0)); break;
26 }
27 p = 0;
28 }
29 }
30 }
31