1 /* { dg-do compile } */
2 /* { dg-options "-O2 -Wall -Wwrite-strings -Werror -fmerge-all-constants -fno-stack-protector -mieee -fdump-rtl-expand" } */
3 
4 struct expression {
5   unsigned long int num;
6 };
7 union YYSTYPE {
8   unsigned long int num;
9   struct expression *exp;
10 };
11 
12 typedef union YYSTYPE YYSTYPE;
13 
14 struct expression * new_exp_0 (int);
15 
16 union yyalloc {
17   short yyss_alloc;
18 };
19 
20 static const signed char yypact[] = {
21   -9, -9, -10, -10, -9, 8, 36, -10, 13, -10, -9, -9, -9, -9, -9, -9, -9, -10, 26, 41, 45, 18, -2, 14, -10, -9, 36 };
22 static const unsigned char yydefact[] = {
23   0, 0, 12, 11, 0, 0, 2, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 13, 0, 4, 5, 6, 7, 8, 9, 0, 3 };
24 
25 static const signed char yypgoto[3] = "\366\366\377";
26 static const signed char yydefgoto[3] = "\377\005\006";
27 
28 static const unsigned char yytable[] = {
29   7, 1, 2, 8, 3, 4, 15, 16, 9, 18, 19, 20, 21, 22, 23, 24, 10, 11, 12, 13, 14, 15, 16, 16, 26, 14, 15, 16, 17, 10, 11, 12, 13, 14, 15, 16, 0, 0, 25, 10, 11, 12, 13, 14, 15, 16, 12, 13, 14, 15, 16, 13, 14, 15, 16 };
30 
31 static const signed char yycheck[] = {
32   1, 10, 11, 4, 13, 14, 8, 9, 0, 10, 11, 12, 13, 14, 15, 16, 3, 4, 5, 6, 7, 8, 9, 9, 25, 7, 8, 9, 15, 3, 4, 5, 6, 7, 8, 9, -1, -1, 12, 3, 4, 5, 6, 7, 8, 9, 5, 6, 7, 8, 9, 6, 7, 8, 9 };
33 
34 static const unsigned char yyr1[] = {
35   0, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 };
36 
37 static const unsigned char yyr2[] = {
38   0, 2, 1, 5, 3, 3, 3, 3, 3, 3, 2, 1, 1, 3 };
39 
__gettextparse(void)40 int __gettextparse (void)
41 {
42   int yystate = 0;
43   short yyssa[200];
44   short *yyss = yyss;
45   short *yyssp = yyssa;
46   YYSTYPE yyvsa[200];
47   YYSTYPE *yyvsp = yyvsa;
48   enum { yystacksize = 200 };
49   int yylen = 0;
50   goto yysetstate;
51  yynewstate: yyssp++;
52  yysetstate: *yyssp = yystate;
53 
54   if (yyss + yystacksize - 1 <= yyssp)
55     {
56       long unsigned int yysize = yyssp - yyss + 1;
57       {
58 	short *yyss1 = yyss;
59 	union yyalloc *yyptr = (union yyalloc *) __builtin_malloc ((yystacksize * (sizeof (short) + sizeof (YYSTYPE)) + (sizeof (union yyalloc) - 1)));
60 	if (!yyptr) return 0;
61 	__builtin_memcpy (&yyptr->yyss_alloc, yyss, yysize * sizeof *(yyss));
62 	yyss = &yyptr->yyss_alloc;
63 	if (yyss1 != yyssa) __builtin_free (yyss1);
64       }
65       if (yyss + yystacksize - 1 <= yyssp)
66 	return 0;
67     }
68 
69   int yyn = yypact[yystate];
70   if (yyn == -10)
71     goto yydefault;
72 
73   yyn = yytable[yyn];
74   if (yyn <= 0)
75     goto yyreduce;
76 
77  yydefault: yyn = yydefact[yystate];
78  yyreduce: yylen = yyr2[yyn];
79 
80   YYSTYPE yyval;
81   if (yyn == 12 && (yyval.exp = new_exp_0 (0)) != 0)
82     (yyval.exp)->num = (yyvsp[0].num);
83 
84   (yyvsp -= yylen, yyssp -= yylen);
85   yyn = yyr1[yyn];
86   yystate = yypgoto[yyn - 16] + *yyssp;
87   if (0 <= yystate && yystate <= 54 && yycheck[yystate] == *yyssp)
88     yystate = yytable[yystate];
89   else
90     yystate = yydefgoto[yyn - 16];
91 
92   goto yynewstate;
93 }
94 
95 /* { dg-final { scan-rtl-dump-not "const_int 230584300921" "expand" } } */
96 /* { dg-final { scan-assembler-not "yypgoto\\+230584300921" } } */
97