c-parse.y: Regenerate.
authorBen Chelf <chelf@gcc.gnu.org>
Mon, 10 Jul 2000 11:03:04 +0000 (04:03 -0700)
committerBen Chelf <chelf@gcc.gnu.org>
Mon, 10 Jul 2000 11:03:04 +0000 (04:03 -0700)
2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>

* c-parse.y: Regenerate.
* c-pasre.c: Likewise.

From-SVN: r34944

gcc/c-parse.c
gcc/c-parse.y

index 6d730c8..20e2024 100644 (file)
@@ -415,12 +415,12 @@ static const short yyrline[] = { 0,
   1506,  1524,  1529,  1534,  1537,  1551,  1560,  1564,  1568,  1572,
   1578,  1582,  1587,  1590,  1595,  1598,  1599,  1615,  1620,  1623,
   1635,  1637,  1647,  1657,  1658,  1665,  1667,  1679,  1683,  1697,
-  1703,  1709,  1710,  1715,  1720,  1724,  1728,  1739,  1746,  1753,
-  1760,  1771,  1777,  1780,  1785,  1808,  1838,  1869,  1900,  1915,
-  1929,  1933,  1937,  1940,  1945,  1947,  1950,  1952,  1956,  1961,
-  1964,  1970,  1975,  1980,  1982,  1991,  1992,  1998,  2000,  2010,
-  2012,  2016,  2019,  2025,  2034,  2042,  2050,  2059,  2072,  2077,
-  2082,  2084,  2093,  2096,  2101,  2104,  2108
+  1703,  1709,  1710,  1714,  1718,  1722,  1726,  1737,  1744,  1751,
+  1758,  1769,  1775,  1778,  1783,  1806,  1836,  1842,  1848,  1854,
+  1868,  1872,  1876,  1879,  1884,  1886,  1889,  1891,  1895,  1900,
+  1903,  1909,  1914,  1919,  1921,  1930,  1931,  1937,  1939,  1949,
+  1951,  1955,  1958,  1964,  1973,  1981,  1989,  1998,  2011,  2016,
+  2021,  2023,  2032,  2035,  2040,  2043,  2047
 };
 #endif
 
@@ -1271,7 +1271,7 @@ static const short yycheck[] = {    38,
     48,    49,    50,    51,    52,    53,    54,    55,    56,    57
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/misc/bison.simple"
+#line 3 "/usr/lib/bison.simple"
 /* This file comes from bison-1.28.  */
 
 /* Skeleton output parser for bison,
@@ -1485,7 +1485,7 @@ __yy_memcpy (char *to, char *from, unsigned int count)
 #endif
 #endif
 \f
-#line 217 "/usr/share/misc/bison.simple"
+#line 217 "/usr/lib/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -3345,32 +3345,30 @@ case 352:
     break;}
 case 353:
 #line 1711 "c-parse.y"
-{ stmt_count++;
-                 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
-                 if ( ! expand_exit_something ())
-                   error ("break statement not within loop or switch"); ;
+{ tree break_stmt = build_break_stmt ();
+                 stmt_count++;
+                 genrtl_break_stmt (); ;
     break;}
 case 354:
-#line 1716 "c-parse.y"
-{ stmt_count++;
-                 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
-                 if (! expand_continue_loop (NULL_PTR))
-                   error ("continue statement not within a loop"); ;
+#line 1715 "c-parse.y"
+{ tree continue_stmt = build_continue_stmt ();
+                  stmt_count++;
+                 genrtl_continue_stmt (); ;
     break;}
 case 355:
-#line 1721 "c-parse.y"
-{ stmt_count++;
-                 emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
-                 c_expand_return (NULL_TREE); ;
+#line 1719 "c-parse.y"
+{ tree return_stmt = build_return_stmt (NULL_TREE);
+                  stmt_count++;
+                 genrtl_return_stmt (RETURN_EXPR(return_stmt)); ;
     break;}
 case 356:
-#line 1725 "c-parse.y"
-{ stmt_count++;
-                 emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
-                 c_expand_return (yyvsp[-1].ttype); ;
+#line 1723 "c-parse.y"
+{ tree return_stmt = build_return_stmt (yyvsp[-1].ttype);
+                  stmt_count++;
+                 genrtl_return_stmt (RETURN_EXPR(return_stmt)); ;
     break;}
 case 357:
-#line 1729 "c-parse.y"
+#line 1727 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
                  STRIP_NOPS (yyvsp[-2].ttype);
@@ -3382,7 +3380,7 @@ case 357:
                    error ("argument of `asm' is not a constant string"); ;
     break;}
 case 358:
-#line 1740 "c-parse.y"
+#line 1738 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
@@ -3390,7 +3388,7 @@ case 358:
                                         input_filename, lineno); ;
     break;}
 case 359:
-#line 1747 "c-parse.y"
+#line 1745 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
@@ -3398,7 +3396,7 @@ case 359:
                                         input_filename, lineno); ;
     break;}
 case 360:
-#line 1755 "c-parse.y"
+#line 1753 "c-parse.y"
 { stmt_count++;
                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
@@ -3406,7 +3404,7 @@ case 360:
                                         input_filename, lineno); ;
     break;}
 case 361:
-#line 1761 "c-parse.y"
+#line 1759 "c-parse.y"
 { tree decl;
                  stmt_count++;
                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
@@ -3419,7 +3417,7 @@ case 361:
                ;
     break;}
 case 362:
-#line 1772 "c-parse.y"
+#line 1770 "c-parse.y"
 { if (pedantic)
                    pedwarn ("ANSI C forbids `goto *expr;'");
                  stmt_count++;
@@ -3427,7 +3425,7 @@ case 362:
                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
     break;}
 case 365:
-#line 1787 "c-parse.y"
+#line 1785 "c-parse.y"
 {
            /* The value returned by this action is  */
            /*      1 if everything is OK */ 
@@ -3450,97 +3448,38 @@ case 365:
          ;
     break;}
 case 366:
-#line 1808 "c-parse.y"
+#line 1806 "c-parse.y"
 {
            if (yyvsp[-1].itype)
              iterator_for_loop_end (yyvsp[-3].ttype);
          ;
     break;}
 case 367:
-#line 1839 "c-parse.y"
-{ register tree value = check_case_value (yyvsp[-1].ttype);
-                 register tree label
-                   = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-
+#line 1837 "c-parse.y"
+{ tree case_label_tree = build_case_label (yyvsp[-1].ttype, NULL_TREE);
                  stmt_count++;
-
-                 if (value != error_mark_node)
-                   {
-                     tree duplicate;
-                     int success;
-
-                     if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
-                       pedwarn ("label must have integral type in ANSI C");
-
-                     success = pushcase (value, convert_and_check,
-                                         label, &duplicate);
-
-                     if (success == 1)
-                       error ("case label not within a switch statement");
-                     else if (success == 2)
-                       {
-                         error ("duplicate case value");
-                         error_with_decl (duplicate, "this is the first entry for that value");
-                       }
-                     else if (success == 3)
-                       warning ("case value out of range");
-                     else if (success == 5)
-                       error ("case label within scope of cleanup or variable array");
-                   }
-                 position_after_white_space (); ;
+                 genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
+                 position_after_white_space ();
+               ;
     break;}
 case 368:
-#line 1870 "c-parse.y"
-{ register tree value1 = check_case_value (yyvsp[-3].ttype);
-                 register tree value2 = check_case_value (yyvsp[-1].ttype);
-                 register tree label
-                   = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-
-                 if (pedantic)
-                   pedwarn ("ANSI C forbids case ranges");
+#line 1843 "c-parse.y"
+{ tree case_label_tree = build_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype);
                  stmt_count++;
-
-                 if (value1 != error_mark_node && value2 != error_mark_node)
-                   {
-                     tree duplicate;
-                     int success = pushcase_range (value1, value2,
-                                                   convert_and_check, label,
-                                                   &duplicate);
-                     if (success == 1)
-                       error ("case label not within a switch statement");
-                     else if (success == 2)
-                       {
-                         error ("duplicate case value");
-                         error_with_decl (duplicate, "this is the first entry for that value");
-                       }
-                     else if (success == 3)
-                       warning ("case value out of range");
-                     else if (success == 4)
-                       warning ("empty case range");
-                     else if (success == 5)
-                       error ("case label within scope of cleanup or variable array");
-                   }
-                 position_after_white_space (); ;
+                 genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
+                 position_after_white_space ();
+               ;
     break;}
 case 369:
-#line 1901 "c-parse.y"
-{
-                 tree duplicate;
-                 register tree label
-                   = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-                 int success = pushcase (NULL_TREE, 0, label, &duplicate);
+#line 1849 "c-parse.y"
+{ tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE);
                  stmt_count++;
-                 if (success == 1)
-                   error ("default label not within a switch statement");
-                 else if (success == 2)
-                   {
-                     error ("multiple default labels in one switch");
-                     error_with_decl (duplicate, "this is the first default label");
-                   }
-                 position_after_white_space (); ;
+                 genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
+                 position_after_white_space ();
+               ;
     break;}
 case 370:
-#line 1916 "c-parse.y"
+#line 1855 "c-parse.y"
 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
                  stmt_count++;
                  emit_nop ();
@@ -3552,52 +3491,52 @@ case 370:
                  position_after_white_space (); ;
     break;}
 case 371:
-#line 1931 "c-parse.y"
+#line 1870 "c-parse.y"
 { emit_line_note (input_filename, lineno);
                  yyval.ttype = NULL_TREE; ;
     break;}
 case 372:
-#line 1934 "c-parse.y"
+#line 1873 "c-parse.y"
 { emit_line_note (input_filename, lineno); ;
     break;}
 case 373:
-#line 1939 "c-parse.y"
+#line 1878 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 375:
-#line 1946 "c-parse.y"
+#line 1885 "c-parse.y"
 { yyval.ttype = NULL_TREE; ;
     break;}
 case 378:
-#line 1953 "c-parse.y"
+#line 1892 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
     break;}
 case 379:
-#line 1958 "c-parse.y"
+#line 1897 "c-parse.y"
 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
     break;}
 case 380:
-#line 1963 "c-parse.y"
+#line 1902 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
     break;}
 case 381:
-#line 1965 "c-parse.y"
+#line 1904 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
     break;}
 case 382:
-#line 1971 "c-parse.y"
+#line 1910 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (0); ;
     break;}
 case 383:
-#line 1975 "c-parse.y"
+#line 1914 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 385:
-#line 1983 "c-parse.y"
+#line 1922 "c-parse.y"
 { tree parm;
                  if (pedantic)
                    pedwarn ("ANSI C forbids forward parameter declarations");
@@ -3607,19 +3546,19 @@ case 385:
                  clear_parm_order (); ;
     break;}
 case 386:
-#line 1991 "c-parse.y"
+#line 1930 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype; ;
     break;}
 case 387:
-#line 1993 "c-parse.y"
+#line 1932 "c-parse.y"
 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
     break;}
 case 388:
-#line 1999 "c-parse.y"
+#line 1938 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 389:
-#line 2001 "c-parse.y"
+#line 1940 "c-parse.y"
 { yyval.ttype = get_parm_info (0);
                  /* Gcc used to allow this as an extension.  However, it does
                     not work for all targets, and thus has been disabled.
@@ -3631,23 +3570,23 @@ case 389:
                ;
     break;}
 case 390:
-#line 2011 "c-parse.y"
+#line 1950 "c-parse.y"
 { yyval.ttype = get_parm_info (1); ;
     break;}
 case 391:
-#line 2013 "c-parse.y"
+#line 1952 "c-parse.y"
 { yyval.ttype = get_parm_info (0); ;
     break;}
 case 392:
-#line 2018 "c-parse.y"
+#line 1957 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 393:
-#line 2020 "c-parse.y"
+#line 1959 "c-parse.y"
 { push_parm_decl (yyvsp[0].ttype); ;
     break;}
 case 394:
-#line 2027 "c-parse.y"
+#line 1966 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3657,7 +3596,7 @@ case 394:
                  declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 395:
-#line 2035 "c-parse.y"
+#line 1974 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3667,7 +3606,7 @@ case 395:
                  declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 396:
-#line 2043 "c-parse.y"
+#line 1982 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3677,7 +3616,7 @@ case 396:
                  declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 397:
-#line 2051 "c-parse.y"
+#line 1990 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3687,7 +3626,7 @@ case 397:
                  declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 398:
-#line 2060 "c-parse.y"
+#line 1999 "c-parse.y"
 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
                                                         yyvsp[-1].ttype),
                                        build_tree_list (prefix_attributes,
@@ -3697,19 +3636,19 @@ case 398:
                  declspec_stack = TREE_CHAIN (declspec_stack); ;
     break;}
 case 399:
-#line 2073 "c-parse.y"
+#line 2012 "c-parse.y"
 { pushlevel (0);
                  clear_parm_order ();
                  declare_parm_level (1); ;
     break;}
 case 400:
-#line 2077 "c-parse.y"
+#line 2016 "c-parse.y"
 { yyval.ttype = yyvsp[0].ttype;
                  parmlist_tags_warning ();
                  poplevel (0, 0, 0); ;
     break;}
 case 402:
-#line 2085 "c-parse.y"
+#line 2024 "c-parse.y"
 { tree t;
                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
                    if (TREE_VALUE (t) == NULL_TREE)
@@ -3717,30 +3656,30 @@ case 402:
                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
     break;}
 case 403:
-#line 2095 "c-parse.y"
+#line 2034 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 404:
-#line 2097 "c-parse.y"
+#line 2036 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 405:
-#line 2103 "c-parse.y"
+#line 2042 "c-parse.y"
 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
     break;}
 case 406:
-#line 2105 "c-parse.y"
+#line 2044 "c-parse.y"
 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
     break;}
 case 407:
-#line 2110 "c-parse.y"
+#line 2049 "c-parse.y"
 { yyval.ttype = SAVE_WARN_FLAGS();
                  pedantic = 0;
                  warn_pointer_arith = 0; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 543 "/usr/share/misc/bison.simple"
+#line 543 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -3960,5 +3899,5 @@ yyerrhandle:
     }
   return 1;
 }
-#line 2115 "c-parse.y"
+#line 2054 "c-parse.y"
 
index e7c1d88..11b0656 100644 (file)
@@ -1708,23 +1708,21 @@ stmt:
          lineno_labeled_stmt
                { expand_end_case ($3); }
        | BREAK ';'
-               { stmt_count++;
-                 emit_line_note ($<filename>-1, $<lineno>0);
-                 if ( ! expand_exit_something ())
-                   error ("break statement not within loop or switch"); }
+               { tree break_stmt = build_break_stmt ();
+                 stmt_count++;
+                 genrtl_break_stmt (); }
        | CONTINUE ';'
-               { stmt_count++;
-                 emit_line_note ($<filename>-1, $<lineno>0);
-                 if (! expand_continue_loop (NULL_PTR))
-                   error ("continue statement not within a loop"); }
+                { tree continue_stmt = build_continue_stmt ();
+                  stmt_count++;
+                 genrtl_continue_stmt (); }
        | RETURN ';'
-               { stmt_count++;
-                 emit_line_note ($<filename>-1, $<lineno>0);
-                 c_expand_return (NULL_TREE); }
+                { tree return_stmt = build_return_stmt (NULL_TREE);
+                  stmt_count++;
+                 genrtl_return_stmt (RETURN_EXPR(return_stmt)); }
        | RETURN expr ';'
-               { stmt_count++;
-                 emit_line_note ($<filename>-1, $<lineno>0);
-                 c_expand_return ($2); }
+                { tree return_stmt = build_return_stmt ($2);
+                  stmt_count++;
+                 genrtl_return_stmt (RETURN_EXPR(return_stmt)); }
        | ASM_KEYWORD maybe_type_qual '(' expr ')' ';'
                { stmt_count++;
                  emit_line_note ($<filename>-1, $<lineno>0);
@@ -1836,82 +1834,23 @@ all_iter_stmt_with_decl:
    also at the end of a compound statement.  */
 
 label:   CASE expr_no_commas ':'
-               { register tree value = check_case_value ($2);
-                 register tree label
-                   = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-
+                { tree case_label_tree = build_case_label ($2, NULL_TREE);
                  stmt_count++;
-
-                 if (value != error_mark_node)
-                   {
-                     tree duplicate;
-                     int success;
-
-                     if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
-                       pedwarn ("label must have integral type in ANSI C");
-
-                     success = pushcase (value, convert_and_check,
-                                         label, &duplicate);
-
-                     if (success == 1)
-                       error ("case label not within a switch statement");
-                     else if (success == 2)
-                       {
-                         error ("duplicate case value");
-                         error_with_decl (duplicate, "this is the first entry for that value");
-                       }
-                     else if (success == 3)
-                       warning ("case value out of range");
-                     else if (success == 5)
-                       error ("case label within scope of cleanup or variable array");
-                   }
-                 position_after_white_space (); }
+                 genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
+                 position_after_white_space ();
+               }
        | CASE expr_no_commas ELLIPSIS expr_no_commas ':'
-               { register tree value1 = check_case_value ($2);
-                 register tree value2 = check_case_value ($4);
-                 register tree label
-                   = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-
-                 if (pedantic)
-                   pedwarn ("ANSI C forbids case ranges");
+                { tree case_label_tree = build_case_label ($2, $4);
                  stmt_count++;
-
-                 if (value1 != error_mark_node && value2 != error_mark_node)
-                   {
-                     tree duplicate;
-                     int success = pushcase_range (value1, value2,
-                                                   convert_and_check, label,
-                                                   &duplicate);
-                     if (success == 1)
-                       error ("case label not within a switch statement");
-                     else if (success == 2)
-                       {
-                         error ("duplicate case value");
-                         error_with_decl (duplicate, "this is the first entry for that value");
-                       }
-                     else if (success == 3)
-                       warning ("case value out of range");
-                     else if (success == 4)
-                       warning ("empty case range");
-                     else if (success == 5)
-                       error ("case label within scope of cleanup or variable array");
-                   }
-                 position_after_white_space (); }
+                 genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
+                 position_after_white_space ();
+               }
        | DEFAULT ':'
-               {
-                 tree duplicate;
-                 register tree label
-                   = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
-                 int success = pushcase (NULL_TREE, 0, label, &duplicate);
+                { tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE);
                  stmt_count++;
-                 if (success == 1)
-                   error ("default label not within a switch statement");
-                 else if (success == 2)
-                   {
-                     error ("multiple default labels in one switch");
-                     error_with_decl (duplicate, "this is the first default label");
-                   }
-                 position_after_white_space (); }
+                 genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
+                 position_after_white_space ();
+               }
        | identifier ':' maybe_attribute
                { tree label = define_label (input_filename, lineno, $1);
                  stmt_count++;