(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
alpha/
pr86984.c
       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  
      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" } } */