Commit 10b9cbbe by Benjamin Chelf Committed by Zack Weinberg

Regenerate after this patch:

2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>

        * c-parse.in (BREAK): Change to build tree, then generate RTL.
        (CONTINUE): Likewise.
        (RETURN): Likewise.
        (CASE): Likewise.
        (DEFAULT): Likewise.

From-SVN: r34970
parent 4f923eb8
...@@ -495,27 +495,27 @@ static const short yyrline[] = { 0, ...@@ -495,27 +495,27 @@ static const short yyrline[] = { 0,
1574, 1580, 1598, 1603, 1608, 1611, 1625, 1634, 1638, 1642, 1574, 1580, 1598, 1603, 1608, 1611, 1625, 1634, 1638, 1642,
1646, 1652, 1656, 1661, 1664, 1669, 1672, 1673, 1689, 1694, 1646, 1652, 1656, 1661, 1664, 1669, 1672, 1673, 1689, 1694,
1697, 1709, 1711, 1721, 1731, 1732, 1739, 1741, 1753, 1757, 1697, 1709, 1711, 1721, 1731, 1732, 1739, 1741, 1753, 1757,
1771, 1777, 1783, 1784, 1789, 1794, 1798, 1802, 1813, 1820, 1771, 1777, 1783, 1784, 1788, 1792, 1796, 1800, 1811, 1818,
1827, 1834, 1845, 1851, 1854, 1859, 1882, 1912, 1943, 1974, 1825, 1832, 1843, 1849, 1852, 1857, 1880, 1910, 1916, 1922,
1989, 2003, 2007, 2011, 2014, 2019, 2021, 2024, 2026, 2030, 1928, 1942, 1946, 1950, 1953, 1958, 1960, 1963, 1965, 1969,
2035, 2038, 2044, 2049, 2054, 2056, 2065, 2066, 2072, 2074, 1974, 1977, 1983, 1988, 1993, 1995, 2004, 2005, 2011, 2013,
2084, 2086, 2090, 2093, 2099, 2108, 2116, 2124, 2133, 2146, 2023, 2025, 2029, 2032, 2038, 2047, 2055, 2063, 2072, 2085,
2151, 2156, 2158, 2167, 2170, 2175, 2178, 2182, 2191, 2193, 2090, 2095, 2097, 2106, 2109, 2114, 2117, 2121, 2130, 2132,
2194, 2195, 2196, 2197, 2211, 2214, 2218, 2224, 2230, 2237, 2133, 2134, 2135, 2136, 2150, 2153, 2157, 2163, 2169, 2176,
2242, 2248, 2255, 2261, 2267, 2272, 2278, 2285, 2291, 2297, 2181, 2187, 2194, 2200, 2206, 2211, 2217, 2224, 2230, 2236,
2303, 2311, 2317, 2323, 2331, 2338, 2344, 2353, 2360, 2368, 2242, 2250, 2256, 2262, 2270, 2277, 2283, 2292, 2299, 2307,
2373, 2376, 2386, 2388, 2391, 2393, 2394, 2397, 2402, 2403, 2312, 2315, 2325, 2327, 2330, 2332, 2333, 2336, 2341, 2342,
2420, 2426, 2431, 2435, 2438, 2439, 2442, 2450, 2456, 2465, 2359, 2365, 2370, 2374, 2377, 2378, 2381, 2389, 2395, 2404,
2475, 2482, 2486, 2491, 2500, 2507, 2511, 2521, 2523, 2524, 2414, 2421, 2425, 2430, 2439, 2446, 2450, 2460, 2462, 2463,
2526, 2528, 2529, 2530, 2531, 2533, 2535, 2538, 2546, 2553, 2465, 2467, 2468, 2469, 2470, 2472, 2474, 2477, 2485, 2492,
2553, 2560, 2566, 2568, 2574, 2579, 2584, 2593, 2595, 2601, 2492, 2499, 2505, 2507, 2513, 2518, 2523, 2532, 2534, 2540,
2603, 2606, 2608, 2609, 2610, 2613, 2618, 2620, 2624, 2627, 2542, 2545, 2547, 2548, 2549, 2552, 2557, 2559, 2563, 2566,
2634, 2640, 2645, 2652, 2657, 2662, 2667, 2674, 2678, 2681, 2573, 2579, 2584, 2591, 2596, 2601, 2606, 2613, 2617, 2620,
2687, 2689, 2690, 2691, 2694, 2696, 2697, 2698, 2699, 2700, 2626, 2628, 2629, 2630, 2633, 2635, 2636, 2637, 2638, 2639,
2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649,
2711, 2712, 2713, 2714, 2714, 2717, 2723, 2728, 2733, 2739, 2650, 2651, 2652, 2653, 2653, 2656, 2662, 2667, 2672, 2678,
2741, 2744, 2746, 2753, 2765, 2770, 2776, 2778, 2784, 2788, 2680, 2683, 2685, 2692, 2704, 2709, 2715, 2717, 2723, 2727,
2789, 2795, 2797, 2800, 2802, 2808, 2813, 2819, 2826, 2835 2728, 2734, 2736, 2739, 2741, 2747, 2752, 2758, 2765, 2774
}; };
#endif #endif
...@@ -3874,32 +3874,30 @@ case 363: ...@@ -3874,32 +3874,30 @@ case 363:
break;} break;}
case 364: case 364:
#line 1785 "objc-parse.y" #line 1785 "objc-parse.y"
{ stmt_count++; { tree break_stmt = build_break_stmt ();
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); stmt_count++;
if ( ! expand_exit_something ()) genrtl_break_stmt (); ;
error ("break statement not within loop or switch"); ;
break;} break;}
case 365: case 365:
#line 1790 "objc-parse.y" #line 1789 "objc-parse.y"
{ stmt_count++; { tree continue_stmt = build_continue_stmt ();
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); stmt_count++;
if (! expand_continue_loop (NULL_PTR)) genrtl_continue_stmt (); ;
error ("continue statement not within a loop"); ;
break;} break;}
case 366: case 366:
#line 1795 "objc-parse.y" #line 1793 "objc-parse.y"
{ stmt_count++; { tree return_stmt = build_return_stmt (NULL_TREE);
emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno); stmt_count++;
c_expand_return (NULL_TREE); ; genrtl_return_stmt (RETURN_EXPR(return_stmt)); ;
break;} break;}
case 367: case 367:
#line 1799 "objc-parse.y" #line 1797 "objc-parse.y"
{ stmt_count++; { tree return_stmt = build_return_stmt (yyvsp[-1].ttype);
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); stmt_count++;
c_expand_return (yyvsp[-1].ttype); ; genrtl_return_stmt (RETURN_EXPR(return_stmt)); ;
break;} break;}
case 368: case 368:
#line 1803 "objc-parse.y" #line 1801 "objc-parse.y"
{ stmt_count++; { stmt_count++;
emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno); emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
STRIP_NOPS (yyvsp[-2].ttype); STRIP_NOPS (yyvsp[-2].ttype);
...@@ -3911,7 +3909,7 @@ case 368: ...@@ -3911,7 +3909,7 @@ case 368:
error ("argument of `asm' is not a constant string"); ; error ("argument of `asm' is not a constant string"); ;
break;} break;}
case 369: case 369:
#line 1814 "objc-parse.y" #line 1812 "objc-parse.y"
{ stmt_count++; { stmt_count++;
emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno); emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
...@@ -3919,7 +3917,7 @@ case 369: ...@@ -3919,7 +3917,7 @@ case 369:
input_filename, lineno); ; input_filename, lineno); ;
break;} break;}
case 370: case 370:
#line 1821 "objc-parse.y" #line 1819 "objc-parse.y"
{ stmt_count++; { stmt_count++;
emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno); emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
...@@ -3927,7 +3925,7 @@ case 370: ...@@ -3927,7 +3925,7 @@ case 370:
input_filename, lineno); ; input_filename, lineno); ;
break;} break;}
case 371: case 371:
#line 1829 "objc-parse.y" #line 1827 "objc-parse.y"
{ stmt_count++; { stmt_count++;
emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno); 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, c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
...@@ -3935,7 +3933,7 @@ case 371: ...@@ -3935,7 +3933,7 @@ case 371:
input_filename, lineno); ; input_filename, lineno); ;
break;} break;}
case 372: case 372:
#line 1835 "objc-parse.y" #line 1833 "objc-parse.y"
{ tree decl; { tree decl;
stmt_count++; stmt_count++;
emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno); emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
...@@ -3948,7 +3946,7 @@ case 372: ...@@ -3948,7 +3946,7 @@ case 372:
; ;
break;} break;}
case 373: case 373:
#line 1846 "objc-parse.y" #line 1844 "objc-parse.y"
{ if (pedantic) { if (pedantic)
pedwarn ("ANSI C forbids `goto *expr;'"); pedwarn ("ANSI C forbids `goto *expr;'");
stmt_count++; stmt_count++;
...@@ -3956,7 +3954,7 @@ case 373: ...@@ -3956,7 +3954,7 @@ case 373:
expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ; expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
break;} break;}
case 376: case 376:
#line 1861 "objc-parse.y" #line 1859 "objc-parse.y"
{ {
/* The value returned by this action is */ /* The value returned by this action is */
/* 1 if everything is OK */ /* 1 if everything is OK */
...@@ -3979,97 +3977,38 @@ case 376: ...@@ -3979,97 +3977,38 @@ case 376:
; ;
break;} break;}
case 377: case 377:
#line 1882 "objc-parse.y" #line 1880 "objc-parse.y"
{ {
if (yyvsp[-1].itype) if (yyvsp[-1].itype)
iterator_for_loop_end (yyvsp[-3].ttype); iterator_for_loop_end (yyvsp[-3].ttype);
; ;
break;} break;}
case 378: case 378:
#line 1913 "objc-parse.y" #line 1911 "objc-parse.y"
{ register tree value = check_case_value (yyvsp[-1].ttype); { tree case_label_tree = build_case_label (yyvsp[-1].ttype, NULL_TREE);
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
stmt_count++; stmt_count++;
genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
if (value != error_mark_node) position_after_white_space ();
{ ;
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 (); ;
break;} break;}
case 379: case 379:
#line 1944 "objc-parse.y" #line 1917 "objc-parse.y"
{ register tree value1 = check_case_value (yyvsp[-3].ttype); { tree case_label_tree = build_case_label (yyvsp[-3].ttype, yyvsp[-1].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");
stmt_count++; stmt_count++;
genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
if (value1 != error_mark_node && value2 != error_mark_node) position_after_white_space ();
{ ;
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 (); ;
break;} break;}
case 380: case 380:
#line 1975 "objc-parse.y" #line 1923 "objc-parse.y"
{ { tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE);
tree duplicate;
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
int success = pushcase (NULL_TREE, 0, label, &duplicate);
stmt_count++; stmt_count++;
if (success == 1) genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
error ("default label not within a switch statement"); position_after_white_space ();
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 (); ;
break;} break;}
case 381: case 381:
#line 1990 "objc-parse.y" #line 1929 "objc-parse.y"
{ tree label = define_label (input_filename, lineno, yyvsp[-2].ttype); { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
stmt_count++; stmt_count++;
emit_nop (); emit_nop ();
...@@ -4081,52 +4020,52 @@ case 381: ...@@ -4081,52 +4020,52 @@ case 381:
position_after_white_space (); ; position_after_white_space (); ;
break;} break;}
case 382: case 382:
#line 2005 "objc-parse.y" #line 1944 "objc-parse.y"
{ emit_line_note (input_filename, lineno); { emit_line_note (input_filename, lineno);
yyval.ttype = NULL_TREE; ; yyval.ttype = NULL_TREE; ;
break;} break;}
case 383: case 383:
#line 2008 "objc-parse.y" #line 1947 "objc-parse.y"
{ emit_line_note (input_filename, lineno); ; { emit_line_note (input_filename, lineno); ;
break;} break;}
case 384: case 384:
#line 2013 "objc-parse.y" #line 1952 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 386: case 386:
#line 2020 "objc-parse.y" #line 1959 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 389: case 389:
#line 2027 "objc-parse.y" #line 1966 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;} break;}
case 390: case 390:
#line 2032 "objc-parse.y" #line 1971 "objc-parse.y"
{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;} break;}
case 391: case 391:
#line 2037 "objc-parse.y" #line 1976 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ; { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
break;} break;}
case 392: case 392:
#line 2039 "objc-parse.y" #line 1978 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ; { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
break;} break;}
case 393: case 393:
#line 2045 "objc-parse.y" #line 1984 "objc-parse.y"
{ pushlevel (0); { pushlevel (0);
clear_parm_order (); clear_parm_order ();
declare_parm_level (0); ; declare_parm_level (0); ;
break;} break;}
case 394: case 394:
#line 2049 "objc-parse.y" #line 1988 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; { yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning (); parmlist_tags_warning ();
poplevel (0, 0, 0); ; poplevel (0, 0, 0); ;
break;} break;}
case 396: case 396:
#line 2057 "objc-parse.y" #line 1996 "objc-parse.y"
{ tree parm; { tree parm;
if (pedantic) if (pedantic)
pedwarn ("ANSI C forbids forward parameter declarations"); pedwarn ("ANSI C forbids forward parameter declarations");
...@@ -4136,19 +4075,19 @@ case 396: ...@@ -4136,19 +4075,19 @@ case 396:
clear_parm_order (); ; clear_parm_order (); ;
break;} break;}
case 397: case 397:
#line 2065 "objc-parse.y" #line 2004 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; ; { yyval.ttype = yyvsp[0].ttype; ;
break;} break;}
case 398: case 398:
#line 2067 "objc-parse.y" #line 2006 "objc-parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ; { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
break;} break;}
case 399: case 399:
#line 2073 "objc-parse.y" #line 2012 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); ; { yyval.ttype = get_parm_info (0); ;
break;} break;}
case 400: case 400:
#line 2075 "objc-parse.y" #line 2014 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); { yyval.ttype = get_parm_info (0);
/* Gcc used to allow this as an extension. However, it does /* Gcc used to allow this as an extension. However, it does
not work for all targets, and thus has been disabled. not work for all targets, and thus has been disabled.
...@@ -4160,23 +4099,23 @@ case 400: ...@@ -4160,23 +4099,23 @@ case 400:
; ;
break;} break;}
case 401: case 401:
#line 2085 "objc-parse.y" #line 2024 "objc-parse.y"
{ yyval.ttype = get_parm_info (1); ; { yyval.ttype = get_parm_info (1); ;
break;} break;}
case 402: case 402:
#line 2087 "objc-parse.y" #line 2026 "objc-parse.y"
{ yyval.ttype = get_parm_info (0); ; { yyval.ttype = get_parm_info (0); ;
break;} break;}
case 403: case 403:
#line 2092 "objc-parse.y" #line 2031 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ; { push_parm_decl (yyvsp[0].ttype); ;
break;} break;}
case 404: case 404:
#line 2094 "objc-parse.y" #line 2033 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ; { push_parm_decl (yyvsp[0].ttype); ;
break;} break;}
case 405: case 405:
#line 2101 "objc-parse.y" #line 2040 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
...@@ -4186,7 +4125,7 @@ case 405: ...@@ -4186,7 +4125,7 @@ case 405:
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 406: case 406:
#line 2109 "objc-parse.y" #line 2048 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
...@@ -4196,7 +4135,7 @@ case 406: ...@@ -4196,7 +4135,7 @@ case 406:
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 407: case 407:
#line 2117 "objc-parse.y" #line 2056 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
...@@ -4206,7 +4145,7 @@ case 407: ...@@ -4206,7 +4145,7 @@ case 407:
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 408: case 408:
#line 2125 "objc-parse.y" #line 2064 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
...@@ -4216,7 +4155,7 @@ case 408: ...@@ -4216,7 +4155,7 @@ case 408:
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 409: case 409:
#line 2134 "objc-parse.y" #line 2073 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
...@@ -4226,19 +4165,19 @@ case 409: ...@@ -4226,19 +4165,19 @@ case 409:
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 410: case 410:
#line 2147 "objc-parse.y" #line 2086 "objc-parse.y"
{ pushlevel (0); { pushlevel (0);
clear_parm_order (); clear_parm_order ();
declare_parm_level (1); ; declare_parm_level (1); ;
break;} break;}
case 411: case 411:
#line 2151 "objc-parse.y" #line 2090 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; { yyval.ttype = yyvsp[0].ttype;
parmlist_tags_warning (); parmlist_tags_warning ();
poplevel (0, 0, 0); ; poplevel (0, 0, 0); ;
break;} break;}
case 413: case 413:
#line 2159 "objc-parse.y" #line 2098 "objc-parse.y"
{ tree t; { tree t;
for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t)) for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
if (TREE_VALUE (t) == NULL_TREE) if (TREE_VALUE (t) == NULL_TREE)
...@@ -4246,29 +4185,29 @@ case 413: ...@@ -4246,29 +4185,29 @@ case 413:
yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ; yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
break;} break;}
case 414: case 414:
#line 2169 "objc-parse.y" #line 2108 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;} break;}
case 415: case 415:
#line 2171 "objc-parse.y" #line 2110 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;} break;}
case 416: case 416:
#line 2177 "objc-parse.y" #line 2116 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;} break;}
case 417: case 417:
#line 2179 "objc-parse.y" #line 2118 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;} break;}
case 418: case 418:
#line 2184 "objc-parse.y" #line 2123 "objc-parse.y"
{ yyval.ttype = SAVE_WARN_FLAGS(); { yyval.ttype = SAVE_WARN_FLAGS();
pedantic = 0; pedantic = 0;
warn_pointer_arith = 0; ; warn_pointer_arith = 0; ;
break;} break;}
case 424: case 424:
#line 2198 "objc-parse.y" #line 2137 "objc-parse.y"
{ {
if (objc_implementation_context) if (objc_implementation_context)
{ {
...@@ -4281,27 +4220,27 @@ case 424: ...@@ -4281,27 +4220,27 @@ case 424:
; ;
break;} break;}
case 425: case 425:
#line 2213 "objc-parse.y" #line 2152 "objc-parse.y"
{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
break;} break;}
case 426: case 426:
#line 2215 "objc-parse.y" #line 2154 "objc-parse.y"
{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;} break;}
case 427: case 427:
#line 2220 "objc-parse.y" #line 2159 "objc-parse.y"
{ {
objc_declare_class (yyvsp[-1].ttype); objc_declare_class (yyvsp[-1].ttype);
; ;
break;} break;}
case 428: case 428:
#line 2226 "objc-parse.y" #line 2165 "objc-parse.y"
{ {
objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype); objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
; ;
break;} break;}
case 429: case 429:
#line 2232 "objc-parse.y" #line 2171 "objc-parse.y"
{ {
objc_interface_context = objc_ivar_context objc_interface_context = objc_ivar_context
= start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype); = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
...@@ -4309,20 +4248,20 @@ case 429: ...@@ -4309,20 +4248,20 @@ case 429:
; ;
break;} break;}
case 430: case 430:
#line 2238 "objc-parse.y" #line 2177 "objc-parse.y"
{ {
continue_class (objc_interface_context); continue_class (objc_interface_context);
; ;
break;} break;}
case 431: case 431:
#line 2243 "objc-parse.y" #line 2182 "objc-parse.y"
{ {
finish_class (objc_interface_context); finish_class (objc_interface_context);
objc_interface_context = NULL_TREE; objc_interface_context = NULL_TREE;
; ;
break;} break;}
case 432: case 432:
#line 2249 "objc-parse.y" #line 2188 "objc-parse.y"
{ {
objc_interface_context objc_interface_context
= start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype); = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
...@@ -4330,14 +4269,14 @@ case 432: ...@@ -4330,14 +4269,14 @@ case 432:
; ;
break;} break;}
case 433: case 433:
#line 2256 "objc-parse.y" #line 2195 "objc-parse.y"
{ {
finish_class (objc_interface_context); finish_class (objc_interface_context);
objc_interface_context = NULL_TREE; objc_interface_context = NULL_TREE;
; ;
break;} break;}
case 434: case 434:
#line 2262 "objc-parse.y" #line 2201 "objc-parse.y"
{ {
objc_interface_context = objc_ivar_context objc_interface_context = objc_ivar_context
= start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype); = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
...@@ -4345,20 +4284,20 @@ case 434: ...@@ -4345,20 +4284,20 @@ case 434:
; ;
break;} break;}
case 435: case 435:
#line 2268 "objc-parse.y" #line 2207 "objc-parse.y"
{ {
continue_class (objc_interface_context); continue_class (objc_interface_context);
; ;
break;} break;}
case 436: case 436:
#line 2273 "objc-parse.y" #line 2212 "objc-parse.y"
{ {
finish_class (objc_interface_context); finish_class (objc_interface_context);
objc_interface_context = NULL_TREE; objc_interface_context = NULL_TREE;
; ;
break;} break;}
case 437: case 437:
#line 2279 "objc-parse.y" #line 2218 "objc-parse.y"
{ {
objc_interface_context objc_interface_context
= start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
...@@ -4366,14 +4305,14 @@ case 437: ...@@ -4366,14 +4305,14 @@ case 437:
; ;
break;} break;}
case 438: case 438:
#line 2286 "objc-parse.y" #line 2225 "objc-parse.y"
{ {
finish_class (objc_interface_context); finish_class (objc_interface_context);
objc_interface_context = NULL_TREE; objc_interface_context = NULL_TREE;
; ;
break;} break;}
case 439: case 439:
#line 2292 "objc-parse.y" #line 2231 "objc-parse.y"
{ {
objc_implementation_context = objc_ivar_context objc_implementation_context = objc_ivar_context
= start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
...@@ -4381,14 +4320,14 @@ case 439: ...@@ -4381,14 +4320,14 @@ case 439:
; ;
break;} break;}
case 440: case 440:
#line 2298 "objc-parse.y" #line 2237 "objc-parse.y"
{ {
objc_ivar_chain objc_ivar_chain
= continue_class (objc_implementation_context); = continue_class (objc_implementation_context);
; ;
break;} break;}
case 441: case 441:
#line 2304 "objc-parse.y" #line 2243 "objc-parse.y"
{ {
objc_implementation_context objc_implementation_context
= start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE); = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
...@@ -4397,7 +4336,7 @@ case 441: ...@@ -4397,7 +4336,7 @@ case 441:
; ;
break;} break;}
case 442: case 442:
#line 2312 "objc-parse.y" #line 2251 "objc-parse.y"
{ {
objc_implementation_context = objc_ivar_context objc_implementation_context = objc_ivar_context
= start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
...@@ -4405,14 +4344,14 @@ case 442: ...@@ -4405,14 +4344,14 @@ case 442:
; ;
break;} break;}
case 443: case 443:
#line 2318 "objc-parse.y" #line 2257 "objc-parse.y"
{ {
objc_ivar_chain objc_ivar_chain
= continue_class (objc_implementation_context); = continue_class (objc_implementation_context);
; ;
break;} break;}
case 444: case 444:
#line 2324 "objc-parse.y" #line 2263 "objc-parse.y"
{ {
objc_implementation_context objc_implementation_context
= start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
...@@ -4421,7 +4360,7 @@ case 444: ...@@ -4421,7 +4360,7 @@ case 444:
; ;
break;} break;}
case 445: case 445:
#line 2332 "objc-parse.y" #line 2271 "objc-parse.y"
{ {
objc_interface_context objc_interface_context
= start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
...@@ -4429,14 +4368,14 @@ case 445: ...@@ -4429,14 +4368,14 @@ case 445:
; ;
break;} break;}
case 446: case 446:
#line 2339 "objc-parse.y" #line 2278 "objc-parse.y"
{ {
finish_class (objc_interface_context); finish_class (objc_interface_context);
objc_interface_context = NULL_TREE; objc_interface_context = NULL_TREE;
; ;
break;} break;}
case 447: case 447:
#line 2345 "objc-parse.y" #line 2284 "objc-parse.y"
{ {
objc_implementation_context objc_implementation_context
= start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE); = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
...@@ -4445,7 +4384,7 @@ case 447: ...@@ -4445,7 +4384,7 @@ case 447:
; ;
break;} break;}
case 448: case 448:
#line 2355 "objc-parse.y" #line 2294 "objc-parse.y"
{ {
remember_protocol_qualifiers (); remember_protocol_qualifiers ();
objc_interface_context objc_interface_context
...@@ -4453,7 +4392,7 @@ case 448: ...@@ -4453,7 +4392,7 @@ case 448:
; ;
break;} break;}
case 449: case 449:
#line 2361 "objc-parse.y" #line 2300 "objc-parse.y"
{ {
forget_protocol_qualifiers(); forget_protocol_qualifiers();
finish_protocol(objc_interface_context); finish_protocol(objc_interface_context);
...@@ -4461,13 +4400,13 @@ case 449: ...@@ -4461,13 +4400,13 @@ case 449:
; ;
break;} break;}
case 450: case 450:
#line 2370 "objc-parse.y" #line 2309 "objc-parse.y"
{ {
yyval.ttype = NULL_TREE; yyval.ttype = NULL_TREE;
; ;
break;} break;}
case 452: case 452:
#line 2378 "objc-parse.y" #line 2317 "objc-parse.y"
{ {
if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR) if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
yyval.ttype = yyvsp[-1].ttype; yyval.ttype = yyvsp[-1].ttype;
...@@ -4476,54 +4415,54 @@ case 452: ...@@ -4476,54 +4415,54 @@ case 452:
; ;
break;} break;}
case 455: case 455:
#line 2392 "objc-parse.y" #line 2331 "objc-parse.y"
{ objc_public_flag = 2; ; { objc_public_flag = 2; ;
break;} break;}
case 456: case 456:
#line 2393 "objc-parse.y" #line 2332 "objc-parse.y"
{ objc_public_flag = 0; ; { objc_public_flag = 0; ;
break;} break;}
case 457: case 457:
#line 2394 "objc-parse.y" #line 2333 "objc-parse.y"
{ objc_public_flag = 1; ; { objc_public_flag = 1; ;
break;} break;}
case 458: case 458:
#line 2399 "objc-parse.y" #line 2338 "objc-parse.y"
{ {
yyval.ttype = NULL_TREE; yyval.ttype = NULL_TREE;
; ;
break;} break;}
case 460: case 460:
#line 2404 "objc-parse.y" #line 2343 "objc-parse.y"
{ {
if (pedantic) if (pedantic)
pedwarn ("extra semicolon in struct or union specified"); pedwarn ("extra semicolon in struct or union specified");
; ;
break;} break;}
case 461: case 461:
#line 2422 "objc-parse.y" #line 2361 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; { yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack); current_declspecs = TREE_VALUE (declspec_stack);
prefix_attributes = TREE_PURPOSE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 462: case 462:
#line 2427 "objc-parse.y" #line 2366 "objc-parse.y"
{ yyval.ttype = yyvsp[0].ttype; { yyval.ttype = yyvsp[0].ttype;
current_declspecs = TREE_VALUE (declspec_stack); current_declspecs = TREE_VALUE (declspec_stack);
prefix_attributes = TREE_PURPOSE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 463: case 463:
#line 2432 "objc-parse.y" #line 2371 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 464: case 464:
#line 2437 "objc-parse.y" #line 2376 "objc-parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 467: case 467:
#line 2444 "objc-parse.y" #line 2383 "objc-parse.y"
{ {
yyval.ttype = add_instance_variable (objc_ivar_context, yyval.ttype = add_instance_variable (objc_ivar_context,
objc_public_flag, objc_public_flag,
...@@ -4532,7 +4471,7 @@ case 467: ...@@ -4532,7 +4471,7 @@ case 467:
; ;
break;} break;}
case 468: case 468:
#line 2451 "objc-parse.y" #line 2390 "objc-parse.y"
{ {
yyval.ttype = add_instance_variable (objc_ivar_context, yyval.ttype = add_instance_variable (objc_ivar_context,
objc_public_flag, objc_public_flag,
...@@ -4540,7 +4479,7 @@ case 468: ...@@ -4540,7 +4479,7 @@ case 468:
; ;
break;} break;}
case 469: case 469:
#line 2457 "objc-parse.y" #line 2396 "objc-parse.y"
{ {
yyval.ttype = add_instance_variable (objc_ivar_context, yyval.ttype = add_instance_variable (objc_ivar_context,
objc_public_flag, objc_public_flag,
...@@ -4549,7 +4488,7 @@ case 469: ...@@ -4549,7 +4488,7 @@ case 469:
; ;
break;} break;}
case 470: case 470:
#line 2467 "objc-parse.y" #line 2406 "objc-parse.y"
{ {
remember_protocol_qualifiers (); remember_protocol_qualifiers ();
if (objc_implementation_context) if (objc_implementation_context)
...@@ -4559,7 +4498,7 @@ case 470: ...@@ -4559,7 +4498,7 @@ case 470:
; ;
break;} break;}
case 471: case 471:
#line 2475 "objc-parse.y" #line 2414 "objc-parse.y"
{ {
forget_protocol_qualifiers (); forget_protocol_qualifiers ();
add_class_method (objc_implementation_context, yyvsp[0].ttype); add_class_method (objc_implementation_context, yyvsp[0].ttype);
...@@ -4568,20 +4507,20 @@ case 471: ...@@ -4568,20 +4507,20 @@ case 471:
; ;
break;} break;}
case 472: case 472:
#line 2482 "objc-parse.y" #line 2421 "objc-parse.y"
{ {
continue_method_def (); continue_method_def ();
; ;
break;} break;}
case 473: case 473:
#line 2486 "objc-parse.y" #line 2425 "objc-parse.y"
{ {
finish_method_def (); finish_method_def ();
objc_method_context = NULL_TREE; objc_method_context = NULL_TREE;
; ;
break;} break;}
case 474: case 474:
#line 2492 "objc-parse.y" #line 2431 "objc-parse.y"
{ {
remember_protocol_qualifiers (); remember_protocol_qualifiers ();
if (objc_implementation_context) if (objc_implementation_context)
...@@ -4591,7 +4530,7 @@ case 474: ...@@ -4591,7 +4530,7 @@ case 474:
; ;
break;} break;}
case 475: case 475:
#line 2500 "objc-parse.y" #line 2439 "objc-parse.y"
{ {
forget_protocol_qualifiers (); forget_protocol_qualifiers ();
add_instance_method (objc_implementation_context, yyvsp[0].ttype); add_instance_method (objc_implementation_context, yyvsp[0].ttype);
...@@ -4600,28 +4539,28 @@ case 475: ...@@ -4600,28 +4539,28 @@ case 475:
; ;
break;} break;}
case 476: case 476:
#line 2507 "objc-parse.y" #line 2446 "objc-parse.y"
{ {
continue_method_def (); continue_method_def ();
; ;
break;} break;}
case 477: case 477:
#line 2511 "objc-parse.y" #line 2450 "objc-parse.y"
{ {
finish_method_def (); finish_method_def ();
objc_method_context = NULL_TREE; objc_method_context = NULL_TREE;
; ;
break;} break;}
case 479: case 479:
#line 2523 "objc-parse.y" #line 2462 "objc-parse.y"
{yyval.ttype = NULL_TREE; ; {yyval.ttype = NULL_TREE; ;
break;} break;}
case 484: case 484:
#line 2530 "objc-parse.y" #line 2469 "objc-parse.y"
{yyval.ttype = NULL_TREE; ; {yyval.ttype = NULL_TREE; ;
break;} break;}
case 488: case 488:
#line 2540 "objc-parse.y" #line 2479 "objc-parse.y"
{ {
/* Remember protocol qualifiers in prototypes. */ /* Remember protocol qualifiers in prototypes. */
remember_protocol_qualifiers (); remember_protocol_qualifiers ();
...@@ -4629,7 +4568,7 @@ case 488: ...@@ -4629,7 +4568,7 @@ case 488:
; ;
break;} break;}
case 489: case 489:
#line 2546 "objc-parse.y" #line 2485 "objc-parse.y"
{ {
/* Forget protocol qualifiers here. */ /* Forget protocol qualifiers here. */
forget_protocol_qualifiers (); forget_protocol_qualifiers ();
...@@ -4637,7 +4576,7 @@ case 489: ...@@ -4637,7 +4576,7 @@ case 489:
; ;
break;} break;}
case 491: case 491:
#line 2554 "objc-parse.y" #line 2493 "objc-parse.y"
{ {
/* Remember protocol qualifiers in prototypes. */ /* Remember protocol qualifiers in prototypes. */
remember_protocol_qualifiers (); remember_protocol_qualifiers ();
...@@ -4645,7 +4584,7 @@ case 491: ...@@ -4645,7 +4584,7 @@ case 491:
; ;
break;} break;}
case 492: case 492:
#line 2560 "objc-parse.y" #line 2499 "objc-parse.y"
{ {
/* Forget protocol qualifiers here. */ /* Forget protocol qualifiers here. */
forget_protocol_qualifiers (); forget_protocol_qualifiers ();
...@@ -4653,93 +4592,93 @@ case 492: ...@@ -4653,93 +4592,93 @@ case 492:
; ;
break;} break;}
case 494: case 494:
#line 2570 "objc-parse.y" #line 2509 "objc-parse.y"
{ {
yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
; ;
break;} break;}
case 495: case 495:
#line 2575 "objc-parse.y" #line 2514 "objc-parse.y"
{ {
yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
; ;
break;} break;}
case 496: case 496:
#line 2580 "objc-parse.y" #line 2519 "objc-parse.y"
{ {
yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 497: case 497:
#line 2585 "objc-parse.y" #line 2524 "objc-parse.y"
{ {
yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 506: case 506:
#line 2615 "objc-parse.y" #line 2554 "objc-parse.y"
{ current_declspecs = TREE_VALUE (declspec_stack); { current_declspecs = TREE_VALUE (declspec_stack);
prefix_attributes = TREE_PURPOSE (declspec_stack); prefix_attributes = TREE_PURPOSE (declspec_stack);
declspec_stack = TREE_CHAIN (declspec_stack); ; declspec_stack = TREE_CHAIN (declspec_stack); ;
break;} break;}
case 507: case 507:
#line 2619 "objc-parse.y" #line 2558 "objc-parse.y"
{ shadow_tag (yyvsp[-1].ttype); ; { shadow_tag (yyvsp[-1].ttype); ;
break;} break;}
case 508: case 508:
#line 2621 "objc-parse.y" #line 2560 "objc-parse.y"
{ pedwarn ("empty declaration"); ; { pedwarn ("empty declaration"); ;
break;} break;}
case 509: case 509:
#line 2626 "objc-parse.y" #line 2565 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ; { push_parm_decl (yyvsp[0].ttype); ;
break;} break;}
case 510: case 510:
#line 2628 "objc-parse.y" #line 2567 "objc-parse.y"
{ push_parm_decl (yyvsp[0].ttype); ; { push_parm_decl (yyvsp[0].ttype); ;
break;} break;}
case 511: case 511:
#line 2636 "objc-parse.y" #line 2575 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
yyvsp[0].ttype)); ; yyvsp[0].ttype)); ;
break;} break;}
case 512: case 512:
#line 2641 "objc-parse.y" #line 2580 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
yyvsp[0].ttype)); ; yyvsp[0].ttype)); ;
break;} break;}
case 513: case 513:
#line 2646 "objc-parse.y" #line 2585 "objc-parse.y"
{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs, { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
yyvsp[-1].ttype), yyvsp[-1].ttype),
build_tree_list (prefix_attributes, build_tree_list (prefix_attributes,
yyvsp[0].ttype)); ; yyvsp[0].ttype)); ;
break;} break;}
case 514: case 514:
#line 2654 "objc-parse.y" #line 2593 "objc-parse.y"
{ {
yyval.ttype = NULL_TREE; yyval.ttype = NULL_TREE;
; ;
break;} break;}
case 515: case 515:
#line 2658 "objc-parse.y" #line 2597 "objc-parse.y"
{ {
/* oh what a kludge! */ /* oh what a kludge! */
yyval.ttype = objc_ellipsis_node; yyval.ttype = objc_ellipsis_node;
; ;
break;} break;}
case 516: case 516:
#line 2663 "objc-parse.y" #line 2602 "objc-parse.y"
{ {
pushlevel (0); pushlevel (0);
; ;
break;} break;}
case 517: case 517:
#line 2667 "objc-parse.y" #line 2606 "objc-parse.y"
{ {
/* returns a tree list node generated by get_parm_info */ /* returns a tree list node generated by get_parm_info */
yyval.ttype = yyvsp[0].ttype; yyval.ttype = yyvsp[0].ttype;
...@@ -4747,119 +4686,119 @@ case 517: ...@@ -4747,119 +4686,119 @@ case 517:
; ;
break;} break;}
case 520: case 520:
#line 2682 "objc-parse.y" #line 2621 "objc-parse.y"
{ {
yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 525: case 525:
#line 2695 "objc-parse.y" #line 2634 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 526: case 526:
#line 2696 "objc-parse.y" #line 2635 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 527: case 527:
#line 2697 "objc-parse.y" #line 2636 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 528: case 528:
#line 2698 "objc-parse.y" #line 2637 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 529: case 529:
#line 2699 "objc-parse.y" #line 2638 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 530: case 530:
#line 2700 "objc-parse.y" #line 2639 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 531: case 531:
#line 2701 "objc-parse.y" #line 2640 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 532: case 532:
#line 2702 "objc-parse.y" #line 2641 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 533: case 533:
#line 2703 "objc-parse.y" #line 2642 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 534: case 534:
#line 2704 "objc-parse.y" #line 2643 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 535: case 535:
#line 2705 "objc-parse.y" #line 2644 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 536: case 536:
#line 2706 "objc-parse.y" #line 2645 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 537: case 537:
#line 2707 "objc-parse.y" #line 2646 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 538: case 538:
#line 2708 "objc-parse.y" #line 2647 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 539: case 539:
#line 2709 "objc-parse.y" #line 2648 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 540: case 540:
#line 2710 "objc-parse.y" #line 2649 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 541: case 541:
#line 2711 "objc-parse.y" #line 2650 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 542: case 542:
#line 2712 "objc-parse.y" #line 2651 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 543: case 543:
#line 2713 "objc-parse.y" #line 2652 "objc-parse.y"
{ yyval.ttype = get_identifier (token_buffer); ; { yyval.ttype = get_identifier (token_buffer); ;
break;} break;}
case 546: case 546:
#line 2719 "objc-parse.y" #line 2658 "objc-parse.y"
{ {
yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 547: case 547:
#line 2724 "objc-parse.y" #line 2663 "objc-parse.y"
{ {
yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
; ;
break;} break;}
case 548: case 548:
#line 2729 "objc-parse.y" #line 2668 "objc-parse.y"
{ {
yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype); yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 549: case 549:
#line 2734 "objc-parse.y" #line 2673 "objc-parse.y"
{ {
yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype); yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
; ;
break;} break;}
case 553: case 553:
#line 2747 "objc-parse.y" #line 2686 "objc-parse.y"
{ {
yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 554: case 554:
#line 2755 "objc-parse.y" #line 2694 "objc-parse.y"
{ {
if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE) if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
/* just return the expr., remove a level of indirection */ /* just return the expr., remove a level of indirection */
...@@ -4870,69 +4809,69 @@ case 554: ...@@ -4870,69 +4809,69 @@ case 554:
; ;
break;} break;}
case 555: case 555:
#line 2767 "objc-parse.y" #line 2706 "objc-parse.y"
{ {
yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype); yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 556: case 556:
#line 2771 "objc-parse.y" #line 2710 "objc-parse.y"
{ {
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
; ;
break;} break;}
case 558: case 558:
#line 2779 "objc-parse.y" #line 2718 "objc-parse.y"
{ {
yyval.ttype = get_class_reference (yyvsp[0].ttype); yyval.ttype = get_class_reference (yyvsp[0].ttype);
; ;
break;} break;}
case 559: case 559:
#line 2786 "objc-parse.y" #line 2725 "objc-parse.y"
{ objc_receiver_context = 1; ; { objc_receiver_context = 1; ;
break;} break;}
case 560: case 560:
#line 2788 "objc-parse.y" #line 2727 "objc-parse.y"
{ objc_receiver_context = 0; ; { objc_receiver_context = 0; ;
break;} break;}
case 561: case 561:
#line 2790 "objc-parse.y" #line 2729 "objc-parse.y"
{ {
yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
; ;
break;} break;}
case 565: case 565:
#line 2803 "objc-parse.y" #line 2742 "objc-parse.y"
{ {
yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
; ;
break;} break;}
case 566: case 566:
#line 2810 "objc-parse.y" #line 2749 "objc-parse.y"
{ {
yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE); yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
; ;
break;} break;}
case 567: case 567:
#line 2814 "objc-parse.y" #line 2753 "objc-parse.y"
{ {
yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE); yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
; ;
break;} break;}
case 568: case 568:
#line 2821 "objc-parse.y" #line 2760 "objc-parse.y"
{ {
yyval.ttype = yyvsp[-1].ttype; yyval.ttype = yyvsp[-1].ttype;
; ;
break;} break;}
case 569: case 569:
#line 2828 "objc-parse.y" #line 2767 "objc-parse.y"
{ {
yyval.ttype = yyvsp[-1].ttype; yyval.ttype = yyvsp[-1].ttype;
; ;
break;} break;}
case 570: case 570:
#line 2837 "objc-parse.y" #line 2776 "objc-parse.y"
{ {
yyval.ttype = groktypename (yyvsp[-1].ttype); yyval.ttype = groktypename (yyvsp[-1].ttype);
; ;
...@@ -5159,5 +5098,5 @@ yyerrhandle: ...@@ -5159,5 +5098,5 @@ yyerrhandle:
} }
return 1; return 1;
} }
#line 2842 "objc-parse.y" #line 2781 "objc-parse.y"
...@@ -1782,23 +1782,21 @@ stmt: ...@@ -1782,23 +1782,21 @@ stmt:
lineno_labeled_stmt lineno_labeled_stmt
{ expand_end_case ($3); } { expand_end_case ($3); }
| BREAK ';' | BREAK ';'
{ stmt_count++; { tree break_stmt = build_break_stmt ();
emit_line_note ($<filename>-1, $<lineno>0); stmt_count++;
if ( ! expand_exit_something ()) genrtl_break_stmt (); }
error ("break statement not within loop or switch"); }
| CONTINUE ';' | CONTINUE ';'
{ stmt_count++; { tree continue_stmt = build_continue_stmt ();
emit_line_note ($<filename>-1, $<lineno>0); stmt_count++;
if (! expand_continue_loop (NULL_PTR)) genrtl_continue_stmt (); }
error ("continue statement not within a loop"); }
| RETURN ';' | RETURN ';'
{ stmt_count++; { tree return_stmt = build_return_stmt (NULL_TREE);
emit_line_note ($<filename>-1, $<lineno>0); stmt_count++;
c_expand_return (NULL_TREE); } genrtl_return_stmt (RETURN_EXPR(return_stmt)); }
| RETURN expr ';' | RETURN expr ';'
{ stmt_count++; { tree return_stmt = build_return_stmt ($2);
emit_line_note ($<filename>-1, $<lineno>0); stmt_count++;
c_expand_return ($2); } genrtl_return_stmt (RETURN_EXPR(return_stmt)); }
| ASM_KEYWORD maybe_type_qual '(' expr ')' ';' | ASM_KEYWORD maybe_type_qual '(' expr ')' ';'
{ stmt_count++; { stmt_count++;
emit_line_note ($<filename>-1, $<lineno>0); emit_line_note ($<filename>-1, $<lineno>0);
...@@ -1910,82 +1908,23 @@ all_iter_stmt_with_decl: ...@@ -1910,82 +1908,23 @@ all_iter_stmt_with_decl:
also at the end of a compound statement. */ also at the end of a compound statement. */
label: CASE expr_no_commas ':' label: CASE expr_no_commas ':'
{ register tree value = check_case_value ($2); { tree case_label_tree = build_case_label ($2, NULL_TREE);
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
stmt_count++; stmt_count++;
genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
if (value != error_mark_node) position_after_white_space ();
{ }
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 (); }
| CASE expr_no_commas ELLIPSIS expr_no_commas ':' | CASE expr_no_commas ELLIPSIS expr_no_commas ':'
{ register tree value1 = check_case_value ($2); { tree case_label_tree = build_case_label ($2, $4);
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");
stmt_count++; stmt_count++;
genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
if (value1 != error_mark_node && value2 != error_mark_node) position_after_white_space ();
{ }
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 (); }
| DEFAULT ':' | DEFAULT ':'
{ { tree case_label_tree = build_case_label (NULL_TREE, NULL_TREE);
tree duplicate;
register tree label
= build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
int success = pushcase (NULL_TREE, 0, label, &duplicate);
stmt_count++; stmt_count++;
if (success == 1) genrtl_case_label(CASE_LOW(case_label_tree), CASE_HIGH(case_label_tree));
error ("default label not within a switch statement"); position_after_white_space ();
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 (); }
| identifier ':' maybe_attribute | identifier ':' maybe_attribute
{ tree label = define_label (input_filename, lineno, $1); { tree label = define_label (input_filename, lineno, $1);
stmt_count++; stmt_count++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment