1 /* Generated by re2c */
2 #line 1 "bug46_infinite_loop.re"
3 // re2c $INPUT -o $OUTPUT
4 #include <string.h>
5 #include <stdio.h>
6 
main(int argc,char ** argv)7 int main(int argc, char** argv)
8 {
9     char* YYCURSOR = argv[1];
10     char* YYLIMIT  = YYCURSOR + strlen(YYCURSOR);
11     #define YYFILL(n) do { } while(0)
12 
13 
14 #line 15 "bug46_infinite_loop.c"
15 {
16 	unsigned char yych;
17 #line 14 "bug46_infinite_loop.re"
18 	{ }
19 #line 20 "bug46_infinite_loop.c"
20 }
21 #line 15 "bug46_infinite_loop.re"
22 
23 
24 /* BUG BEGINS HERE */
25 
26 #line 27 "bug46_infinite_loop.c"
27 {
28 	unsigned char yych;
29 	goto yy3;
30 yy4:
31 	++YYCURSOR;
32 yy3:
33 	if (YYLIMIT <= YYCURSOR) YYFILL(1);
34 	yych = *YYCURSOR;
35 	switch (yych) {
36 	case 'a':	goto yy7;
37 	case 'b':
38 	case 'c':	goto yy6;
39 	default:	goto yy4;
40 	}
41 yy6:
42 #line 19 "bug46_infinite_loop.re"
43 	{ printf("exit 0\n"); return 0; }
44 #line 45 "bug46_infinite_loop.c"
45 yy7:
46 	++YYCURSOR;
47 	goto yy6;
48 }
49 #line 20 "bug46_infinite_loop.re"
50 
51 
52     printf("exit 1\n");
53     return 0;
54 }
55 bug46_infinite_loop.re:19:13: warning: rule matches empty string [-Wmatch-empty-string]
56