Commit d3959d60 by Jason Merrill Committed by Jason Merrill

* parse.y (typename_sub*): Fix std::.

From-SVN: r17476
parent 91a51951
Sun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com>
* parse.y (typename_sub*): Fix std::.
Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com> Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com>
* error.c (dump_decl): Fix type default template args. * error.c (dump_decl): Fix type default template args.
......
...@@ -701,30 +701,30 @@ static const short yyrline[] = { 0, ...@@ -701,30 +701,30 @@ static const short yyrline[] = { 0,
3144, 3148, 3151, 3154, 3156, 3158, 3160, 3164, 3167, 3170, 3144, 3148, 3151, 3154, 3156, 3158, 3160, 3164, 3167, 3170,
3172, 3174, 3176, 3183, 3194, 3198, 3203, 3207, 3212, 3214, 3172, 3174, 3176, 3183, 3194, 3198, 3203, 3207, 3212, 3214,
3218, 3221, 3223, 3227, 3229, 3230, 3233, 3235, 3241, 3256, 3218, 3221, 3223, 3227, 3229, 3230, 3233, 3235, 3241, 3256,
3262, 3268, 3282, 3284, 3288, 3300, 3306, 3317, 3324, 3330, 3262, 3268, 3282, 3284, 3288, 3304, 3310, 3325, 3332, 3338,
3332, 3333, 3334, 3342, 3351, 3352, 3356, 3359, 3365, 3371, 3340, 3341, 3342, 3350, 3359, 3360, 3364, 3367, 3373, 3379,
3374, 3376, 3378, 3380, 3384, 3388, 3392, 3395, 3400, 3403, 3382, 3384, 3386, 3388, 3392, 3396, 3400, 3403, 3408, 3411,
3405, 3407, 3409, 3411, 3413, 3415, 3417, 3421, 3425, 3429, 3413, 3415, 3417, 3419, 3421, 3423, 3425, 3429, 3433, 3437,
3433, 3434, 3436, 3438, 3440, 3442, 3444, 3446, 3448, 3450, 3441, 3442, 3444, 3446, 3448, 3450, 3452, 3454, 3456, 3458,
3458, 3460, 3461, 3462, 3465, 3473, 3478, 3485, 3487, 3492, 3466, 3468, 3469, 3470, 3473, 3481, 3486, 3493, 3495, 3500,
3494, 3497, 3511, 3514, 3517, 3526, 3538, 3549, 3569, 3579, 3502, 3505, 3519, 3522, 3525, 3534, 3546, 3557, 3577, 3587,
3582, 3590, 3602, 3605, 3608, 3611, 3627, 3630, 3641, 3642, 3590, 3598, 3610, 3613, 3616, 3619, 3635, 3638, 3649, 3650,
3646, 3661, 3680, 3692, 3706, 3720, 3733, 3752, 3770, 3789, 3654, 3669, 3688, 3700, 3714, 3728, 3741, 3760, 3778, 3797,
3797, 3818, 3836, 3849, 3850, 3853, 3853, 3856, 3856, 3859, 3805, 3826, 3844, 3857, 3858, 3861, 3861, 3864, 3864, 3867,
3859, 3865, 3871, 3874, 3879, 3886, 3895, 3904, 3913, 3921, 3867, 3873, 3879, 3882, 3887, 3894, 3903, 3912, 3921, 3929,
3934, 3936, 3940, 3942, 3945, 3952, 3955, 3963, 3979, 3990, 3942, 3944, 3948, 3950, 3953, 3960, 3963, 3971, 3987, 3998,
4002, 4004, 4007, 4017, 4027, 4038, 4040, 4042, 4045, 4062, 4010, 4012, 4015, 4025, 4035, 4046, 4048, 4050, 4053, 4070,
4068, 4076, 4078, 4080, 4084, 4087, 4088, 4096, 4100, 4104, 4076, 4084, 4086, 4088, 4092, 4095, 4096, 4104, 4108, 4112,
4107, 4108, 4114, 4117, 4120, 4122, 4126, 4131, 4134, 4144, 4115, 4116, 4122, 4125, 4128, 4130, 4134, 4139, 4142, 4152,
4149, 4150, 4158, 4164, 4169, 4173, 4178, 4182, 4186, 4190, 4157, 4158, 4166, 4172, 4177, 4181, 4186, 4190, 4194, 4198,
4195, 4206, 4220, 4224, 4227, 4229, 4233, 4237, 4240, 4243, 4203, 4214, 4228, 4232, 4235, 4237, 4241, 4245, 4248, 4251,
4245, 4249, 4251, 4258, 4265, 4268, 4271, 4275, 4279, 4285, 4253, 4257, 4259, 4266, 4273, 4276, 4279, 4283, 4287, 4293,
4289, 4294, 4296, 4299, 4304, 4310, 4321, 4324, 4326, 4330, 4297, 4302, 4304, 4307, 4312, 4318, 4329, 4332, 4334, 4338,
4335, 4337, 4344, 4347, 4349, 4351, 4357, 4362, 4365, 4367, 4343, 4345, 4352, 4355, 4357, 4359, 4365, 4370, 4373, 4375,
4369, 4371, 4373, 4375, 4377, 4379, 4381, 4383, 4385, 4387, 4377, 4379, 4381, 4383, 4385, 4387, 4389, 4391, 4393, 4395,
4389, 4391, 4393, 4395, 4397, 4399, 4401, 4403, 4405, 4407, 4397, 4399, 4401, 4403, 4405, 4407, 4409, 4411, 4413, 4415,
4409, 4411, 4413, 4415, 4417, 4419, 4421, 4423, 4425, 4427, 4417, 4419, 4421, 4423, 4425, 4427, 4429, 4431, 4433, 4435,
4430, 4432 4438, 4440
}; };
#endif #endif
...@@ -7197,29 +7197,37 @@ case 615: ...@@ -7197,29 +7197,37 @@ case 615:
else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
else else
yyval.ttype = yyvsp[0].ttype; {
yyval.ttype = yyvsp[0].ttype;
if (TREE_CODE (yyval.ttype) == TYPE_DECL)
yyval.ttype = TREE_TYPE (yyval.ttype);
}
; ;
break;} break;}
case 616: case 616:
#line 3302 "parse.y" #line 3306 "parse.y"
{ {
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
; ;
break;} break;}
case 617: case 617:
#line 3307 "parse.y" #line 3311 "parse.y"
{ {
if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
else else
yyval.ttype = yyvsp[0].ttype; {
yyval.ttype = yyvsp[0].ttype;
if (TREE_CODE (yyval.ttype) == TYPE_DECL)
yyval.ttype = TREE_TYPE (yyval.ttype);
}
; ;
break;} break;}
case 618: case 618:
#line 3319 "parse.y" #line 3327 "parse.y"
{ {
if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
yyval.ttype = lastiddecl; yyval.ttype = lastiddecl;
...@@ -7227,7 +7235,7 @@ case 618: ...@@ -7227,7 +7235,7 @@ case 618:
; ;
break;} break;}
case 619: case 619:
#line 3325 "parse.y" #line 3333 "parse.y"
{ {
if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
yyval.ttype = lastiddecl; yyval.ttype = lastiddecl;
...@@ -7235,11 +7243,11 @@ case 619: ...@@ -7235,11 +7243,11 @@ case 619:
; ;
break;} break;}
case 620: case 620:
#line 3331 "parse.y" #line 3339 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
break;} break;}
case 623: case 623:
#line 3335 "parse.y" #line 3343 "parse.y"
{ {
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl; yyval.ttype = lastiddecl;
...@@ -7247,7 +7255,7 @@ case 623: ...@@ -7247,7 +7255,7 @@ case 623:
; ;
break;} break;}
case 624: case 624:
#line 3344 "parse.y" #line 3352 "parse.y"
{ {
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
...@@ -7257,156 +7265,156 @@ case 624: ...@@ -7257,156 +7265,156 @@ case 624:
; ;
break;} break;}
case 626: case 626:
#line 3353 "parse.y" #line 3361 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ; { yyval.ttype = yyvsp[0].ttype; ;
break;} break;}
case 627: case 627:
#line 3358 "parse.y" #line 3366 "parse.y"
{ got_scope = NULL_TREE; ; { got_scope = NULL_TREE; ;
break;} break;}
case 628: case 628:
#line 3360 "parse.y" #line 3368 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
break;} break;}
case 629: case 629:
#line 3367 "parse.y" #line 3375 "parse.y"
{ got_scope = void_type_node; ; { got_scope = void_type_node; ;
break;} break;}
case 630: case 630:
#line 3373 "parse.y" #line 3381 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 631: case 631:
#line 3375 "parse.y" #line 3383 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;} break;}
case 632: case 632:
#line 3377 "parse.y" #line 3385 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 633: case 633:
#line 3379 "parse.y" #line 3387 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;} break;}
case 634: case 634:
#line 3381 "parse.y" #line 3389 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
; ;
break;} break;}
case 635: case 635:
#line 3385 "parse.y" #line 3393 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
; ;
break;} break;}
case 637: case 637:
#line 3394 "parse.y" #line 3402 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;} break;}
case 638: case 638:
#line 3396 "parse.y" #line 3404 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;} break;}
case 639: case 639:
#line 3402 "parse.y" #line 3410 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;} break;}
case 640: case 640:
#line 3404 "parse.y" #line 3412 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;} break;}
case 641: case 641:
#line 3406 "parse.y" #line 3414 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
break;} break;}
case 642: case 642:
#line 3408 "parse.y" #line 3416 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
break;} break;}
case 643: case 643:
#line 3410 "parse.y" #line 3418 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;} break;}
case 644: case 644:
#line 3412 "parse.y" #line 3420 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;} break;}
case 645: case 645:
#line 3414 "parse.y" #line 3422 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
break;} break;}
case 646: case 646:
#line 3416 "parse.y" #line 3424 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
break;} break;}
case 647: case 647:
#line 3418 "parse.y" #line 3426 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
; ;
break;} break;}
case 648: case 648:
#line 3422 "parse.y" #line 3430 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
; ;
break;} break;}
case 650: case 650:
#line 3431 "parse.y" #line 3439 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ; { yyval.ttype = yyvsp[-1].ttype; ;
break;} break;}
case 652: case 652:
#line 3435 "parse.y" #line 3443 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 653: case 653:
#line 3437 "parse.y" #line 3445 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 654: case 654:
#line 3439 "parse.y" #line 3447 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;} break;}
case 655: case 655:
#line 3441 "parse.y" #line 3449 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;} break;}
case 656: case 656:
#line 3443 "parse.y" #line 3451 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 657: case 657:
#line 3445 "parse.y" #line 3453 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 658: case 658:
#line 3447 "parse.y" #line 3455 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 659: case 659:
#line 3449 "parse.y" #line 3457 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;} break;}
case 660: case 660:
#line 3451 "parse.y" #line 3459 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
break;} break;}
case 666: case 666:
#line 3475 "parse.y" #line 3483 "parse.y"
{ do_pushlevel (); ; { do_pushlevel (); ;
break;} break;}
case 667: case 667:
#line 3480 "parse.y" #line 3488 "parse.y"
{ yyval.ttype = do_poplevel (); ; { yyval.ttype = do_poplevel (); ;
break;} break;}
case 669: case 669:
#line 3488 "parse.y" #line 3496 "parse.y"
{ if (pedantic) { if (pedantic)
pedwarn ("ANSI C++ forbids label declarations"); ; pedwarn ("ANSI C++ forbids label declarations"); ;
break;} break;}
case 672: case 672:
#line 3499 "parse.y" #line 3507 "parse.y"
{ tree link; { tree link;
for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
{ {
...@@ -7417,11 +7425,11 @@ case 672: ...@@ -7417,11 +7425,11 @@ case 672:
; ;
break;} break;}
case 673: case 673:
#line 3513 "parse.y" #line 3521 "parse.y"
{; {;
break;} break;}
case 675: case 675:
#line 3519 "parse.y" #line 3527 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7431,7 +7439,7 @@ case 675: ...@@ -7431,7 +7439,7 @@ case 675:
; ;
break;} break;}
case 676: case 676:
#line 3527 "parse.y" #line 3535 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7443,7 +7451,7 @@ case 676: ...@@ -7443,7 +7451,7 @@ case 676:
; ;
break;} break;}
case 677: case 677:
#line 3540 "parse.y" #line 3548 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7455,7 +7463,7 @@ case 677: ...@@ -7455,7 +7463,7 @@ case 677:
; ;
break;} break;}
case 678: case 678:
#line 3550 "parse.y" #line 3558 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7476,7 +7484,7 @@ case 678: ...@@ -7476,7 +7484,7 @@ case 678:
; ;
break;} break;}
case 679: case 679:
#line 3569 "parse.y" #line 3577 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7487,11 +7495,11 @@ case 679: ...@@ -7487,11 +7495,11 @@ case 679:
; ;
break;} break;}
case 680: case 680:
#line 3581 "parse.y" #line 3589 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 681: case 681:
#line 3583 "parse.y" #line 3591 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7501,7 +7509,7 @@ case 681: ...@@ -7501,7 +7509,7 @@ case 681:
; ;
break;} break;}
case 682: case 682:
#line 3591 "parse.y" #line 3599 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7513,15 +7521,15 @@ case 682: ...@@ -7513,15 +7521,15 @@ case 682:
; ;
break;} break;}
case 683: case 683:
#line 3604 "parse.y" #line 3612 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 685: case 685:
#line 3610 "parse.y" #line 3618 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 686: case 686:
#line 3612 "parse.y" #line 3620 "parse.y"
{ {
tree expr = yyvsp[-1].ttype; tree expr = yyvsp[-1].ttype;
if (! processing_template_decl) if (! processing_template_decl)
...@@ -7539,11 +7547,11 @@ case 686: ...@@ -7539,11 +7547,11 @@ case 686:
finish_stmt (); ; finish_stmt (); ;
break;} break;}
case 687: case 687:
#line 3628 "parse.y" #line 3636 "parse.y"
{ if (! processing_template_decl) expand_start_else (); ; { if (! processing_template_decl) expand_start_else (); ;
break;} break;}
case 688: case 688:
#line 3630 "parse.y" #line 3638 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7556,17 +7564,17 @@ case 688: ...@@ -7556,17 +7564,17 @@ case 688:
; ;
break;} break;}
case 689: case 689:
#line 3641 "parse.y" #line 3649 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 690: case 690:
#line 3643 "parse.y" #line 3651 "parse.y"
{ if (! processing_template_decl) expand_end_cond (); { if (! processing_template_decl) expand_end_cond ();
do_poplevel (); do_poplevel ();
finish_stmt (); ; finish_stmt (); ;
break;} break;}
case 691: case 691:
#line 3647 "parse.y" #line 3655 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7583,7 +7591,7 @@ case 691: ...@@ -7583,7 +7591,7 @@ case 691:
; ;
break;} break;}
case 692: case 692:
#line 3662 "parse.y" #line 3670 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7604,7 +7612,7 @@ case 692: ...@@ -7604,7 +7612,7 @@ case 692:
; ;
break;} break;}
case 693: case 693:
#line 3681 "parse.y" #line 3689 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7618,7 +7626,7 @@ case 693: ...@@ -7618,7 +7626,7 @@ case 693:
; ;
break;} break;}
case 694: case 694:
#line 3693 "parse.y" #line 3701 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7634,7 +7642,7 @@ case 694: ...@@ -7634,7 +7642,7 @@ case 694:
; ;
break;} break;}
case 695: case 695:
#line 3707 "parse.y" #line 3715 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7650,7 +7658,7 @@ case 695: ...@@ -7650,7 +7658,7 @@ case 695:
; ;
break;} break;}
case 696: case 696:
#line 3721 "parse.y" #line 3729 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype; TREE_OPERAND (yyvsp[-5].ttype, 1) = yyvsp[-1].ttype;
...@@ -7665,7 +7673,7 @@ case 696: ...@@ -7665,7 +7673,7 @@ case 696:
; ;
break;} break;}
case 697: case 697:
#line 3734 "parse.y" #line 3742 "parse.y"
{ if (processing_template_decl) { if (processing_template_decl)
{ {
yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE, yyval.ttype = build_min_nt (FOR_STMT, NULL_TREE, NULL_TREE,
...@@ -7686,7 +7694,7 @@ case 697: ...@@ -7686,7 +7694,7 @@ case 697:
; ;
break;} break;}
case 698: case 698:
#line 3753 "parse.y" #line 3761 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7706,7 +7714,7 @@ case 698: ...@@ -7706,7 +7714,7 @@ case 698:
; ;
break;} break;}
case 699: case 699:
#line 3771 "parse.y" #line 3779 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7727,7 +7735,7 @@ case 699: ...@@ -7727,7 +7735,7 @@ case 699:
; ;
break;} break;}
case 700: case 700:
#line 3792 "parse.y" #line 3800 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype; TREE_OPERAND (yyvsp[-9].ttype, 2) = yyvsp[-1].ttype;
...@@ -7735,7 +7743,7 @@ case 700: ...@@ -7735,7 +7743,7 @@ case 700:
; ;
break;} break;}
case 701: case 701:
#line 3798 "parse.y" #line 3806 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7758,7 +7766,7 @@ case 701: ...@@ -7758,7 +7766,7 @@ case 701:
finish_stmt (); ; finish_stmt (); ;
break;} break;}
case 702: case 702:
#line 3819 "parse.y" #line 3827 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7777,7 +7785,7 @@ case 702: ...@@ -7777,7 +7785,7 @@ case 702:
; ;
break;} break;}
case 703: case 703:
#line 3836 "parse.y" #line 3844 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7792,23 +7800,23 @@ case 703: ...@@ -7792,23 +7800,23 @@ case 703:
; ;
break;} break;}
case 704: case 704:
#line 3849 "parse.y" #line 3857 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 705: case 705:
#line 3851 "parse.y" #line 3859 "parse.y"
{ do_case (yyvsp[-1].ttype, NULL_TREE); ; { do_case (yyvsp[-1].ttype, NULL_TREE); ;
break;} break;}
case 707: case 707:
#line 3854 "parse.y" #line 3862 "parse.y"
{ do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ; { do_case (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;} break;}
case 709: case 709:
#line 3857 "parse.y" #line 3865 "parse.y"
{ do_case (NULL_TREE, NULL_TREE); ; { do_case (NULL_TREE, NULL_TREE); ;
break;} break;}
case 711: case 711:
#line 3860 "parse.y" #line 3868 "parse.y"
{ emit_line_note (input_filename, lineno); { emit_line_note (input_filename, lineno);
if (processing_template_decl) if (processing_template_decl)
add_tree (build_min_nt (BREAK_STMT)); add_tree (build_min_nt (BREAK_STMT));
...@@ -7816,7 +7824,7 @@ case 711: ...@@ -7816,7 +7824,7 @@ case 711:
error ("break statement not within loop or switch"); ; error ("break statement not within loop or switch"); ;
break;} break;}
case 712: case 712:
#line 3866 "parse.y" #line 3874 "parse.y"
{ emit_line_note (input_filename, lineno); { emit_line_note (input_filename, lineno);
if (processing_template_decl) if (processing_template_decl)
add_tree (build_min_nt (CONTINUE_STMT)); add_tree (build_min_nt (CONTINUE_STMT));
...@@ -7824,19 +7832,19 @@ case 712: ...@@ -7824,19 +7832,19 @@ case 712:
error ("continue statement not within a loop"); ; error ("continue statement not within a loop"); ;
break;} break;}
case 713: case 713:
#line 3872 "parse.y" #line 3880 "parse.y"
{ emit_line_note (input_filename, lineno); { emit_line_note (input_filename, lineno);
c_expand_return (NULL_TREE); ; c_expand_return (NULL_TREE); ;
break;} break;}
case 714: case 714:
#line 3875 "parse.y" #line 3883 "parse.y"
{ emit_line_note (input_filename, lineno); { emit_line_note (input_filename, lineno);
c_expand_return (yyvsp[-1].ttype); c_expand_return (yyvsp[-1].ttype);
finish_stmt (); finish_stmt ();
; ;
break;} break;}
case 715: case 715:
#line 3880 "parse.y" #line 3888 "parse.y"
{ if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype);
emit_line_note (input_filename, lineno); emit_line_note (input_filename, lineno);
expand_asm (yyvsp[-2].ttype); expand_asm (yyvsp[-2].ttype);
...@@ -7844,7 +7852,7 @@ case 715: ...@@ -7844,7 +7852,7 @@ case 715:
; ;
break;} break;}
case 716: case 716:
#line 3887 "parse.y" #line 3895 "parse.y"
{ if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype); { if (TREE_CHAIN (yyvsp[-4].ttype)) yyvsp[-4].ttype = combine_strings (yyvsp[-4].ttype);
emit_line_note (input_filename, lineno); emit_line_note (input_filename, 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,
...@@ -7854,7 +7862,7 @@ case 716: ...@@ -7854,7 +7862,7 @@ case 716:
; ;
break;} break;}
case 717: case 717:
#line 3896 "parse.y" #line 3904 "parse.y"
{ if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype); { if (TREE_CHAIN (yyvsp[-6].ttype)) yyvsp[-6].ttype = combine_strings (yyvsp[-6].ttype);
emit_line_note (input_filename, lineno); emit_line_note (input_filename, 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,
...@@ -7864,7 +7872,7 @@ case 717: ...@@ -7864,7 +7872,7 @@ case 717:
; ;
break;} break;}
case 718: case 718:
#line 3906 "parse.y" #line 3914 "parse.y"
{ if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype); { if (TREE_CHAIN (yyvsp[-8].ttype)) yyvsp[-8].ttype = combine_strings (yyvsp[-8].ttype);
emit_line_note (input_filename, lineno); emit_line_note (input_filename, 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,
...@@ -7874,7 +7882,7 @@ case 718: ...@@ -7874,7 +7882,7 @@ case 718:
; ;
break;} break;}
case 719: case 719:
#line 3914 "parse.y" #line 3922 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
...@@ -7884,7 +7892,7 @@ case 719: ...@@ -7884,7 +7892,7 @@ case 719:
; ;
break;} break;}
case 720: case 720:
#line 3922 "parse.y" #line 3930 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype)); add_tree (build_min_nt (GOTO_STMT, yyvsp[-1].ttype));
...@@ -7899,21 +7907,21 @@ case 720: ...@@ -7899,21 +7907,21 @@ case 720:
; ;
break;} break;}
case 721: case 721:
#line 3935 "parse.y" #line 3943 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 722: case 722:
#line 3937 "parse.y" #line 3945 "parse.y"
{ error ("label must be followed by statement"); { error ("label must be followed by statement");
yyungetc ('}', 0); yyungetc ('}', 0);
finish_stmt (); ; finish_stmt (); ;
break;} break;}
case 723: case 723:
#line 3941 "parse.y" #line 3949 "parse.y"
{ finish_stmt (); ; { finish_stmt (); ;
break;} break;}
case 725: case 725:
#line 3947 "parse.y" #line 3955 "parse.y"
{ {
if (! current_function_parms_stored) if (! current_function_parms_stored)
store_parm_decls (); store_parm_decls ();
...@@ -7921,11 +7929,11 @@ case 725: ...@@ -7921,11 +7929,11 @@ case 725:
; ;
break;} break;}
case 726: case 726:
#line 3953 "parse.y" #line 3961 "parse.y"
{ expand_start_all_catch (); ; { expand_start_all_catch (); ;
break;} break;}
case 727: case 727:
#line 3955 "parse.y" #line 3963 "parse.y"
{ {
int nested = (hack_decl_function_context int nested = (hack_decl_function_context
(current_function_decl) != NULL_TREE); (current_function_decl) != NULL_TREE);
...@@ -7934,7 +7942,7 @@ case 727: ...@@ -7934,7 +7942,7 @@ case 727:
; ;
break;} break;}
case 728: case 728:
#line 3965 "parse.y" #line 3973 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7950,7 +7958,7 @@ case 728: ...@@ -7950,7 +7958,7 @@ case 728:
; ;
break;} break;}
case 729: case 729:
#line 3979 "parse.y" #line 3987 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7963,7 +7971,7 @@ case 729: ...@@ -7963,7 +7971,7 @@ case 729:
; ;
break;} break;}
case 730: case 730:
#line 3990 "parse.y" #line 3998 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7976,7 +7984,7 @@ case 730: ...@@ -7976,7 +7984,7 @@ case 730:
; ;
break;} break;}
case 733: case 733:
#line 4009 "parse.y" #line 4017 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7987,7 +7995,7 @@ case 733: ...@@ -7987,7 +7995,7 @@ case 733:
; ;
break;} break;}
case 734: case 734:
#line 4018 "parse.y" #line 4026 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -7998,7 +8006,7 @@ case 734: ...@@ -7998,7 +8006,7 @@ case 734:
; ;
break;} break;}
case 735: case 735:
#line 4027 "parse.y" #line 4035 "parse.y"
{ {
if (processing_template_decl) if (processing_template_decl)
{ {
...@@ -8011,17 +8019,17 @@ case 735: ...@@ -8011,17 +8019,17 @@ case 735:
; ;
break;} break;}
case 739: case 739:
#line 4047 "parse.y" #line 4055 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ; { expand_start_catch_block (NULL_TREE, NULL_TREE); ;
break;} break;}
case 740: case 740:
#line 4063 "parse.y" #line 4071 "parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t), expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
TREE_VALUE (yyvsp[-1].ftype.t)); ; TREE_VALUE (yyvsp[-1].ftype.t)); ;
break;} break;}
case 741: case 741:
#line 4070 "parse.y" #line 4078 "parse.y"
{ tree label; { tree label;
do_label: do_label:
label = define_label (input_filename, lineno, yyvsp[-1].ttype); label = define_label (input_filename, lineno, yyvsp[-1].ttype);
...@@ -8030,129 +8038,129 @@ case 741: ...@@ -8030,129 +8038,129 @@ case 741:
; ;
break;} break;}
case 742: case 742:
#line 4077 "parse.y" #line 4085 "parse.y"
{ goto do_label; ; { goto do_label; ;
break;} break;}
case 743: case 743:
#line 4079 "parse.y" #line 4087 "parse.y"
{ goto do_label; ; { goto do_label; ;
break;} break;}
case 744: case 744:
#line 4081 "parse.y" #line 4089 "parse.y"
{ goto do_label; ; { goto do_label; ;
break;} break;}
case 745: case 745:
#line 4086 "parse.y" #line 4094 "parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ; { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
break;} break;}
case 747: case 747:
#line 4089 "parse.y" #line 4097 "parse.y"
{ if (pedantic) { if (pedantic)
pedwarn ("ANSI C++ forbids compound statements inside for initializations"); pedwarn ("ANSI C++ forbids compound statements inside for initializations");
; ;
break;} break;}
case 748: case 748:
#line 4098 "parse.y" #line 4106 "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 749: case 749:
#line 4101 "parse.y" #line 4109 "parse.y"
{ emit_line_note (input_filename, lineno); ; { emit_line_note (input_filename, lineno); ;
break;} break;}
case 750: case 750:
#line 4106 "parse.y" #line 4114 "parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 752: case 752:
#line 4109 "parse.y" #line 4117 "parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 753: case 753:
#line 4116 "parse.y" #line 4124 "parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 756: case 756:
#line 4123 "parse.y" #line 4131 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
break;} break;}
case 757: case 757:
#line 4128 "parse.y" #line 4136 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
break;} break;}
case 758: case 758:
#line 4133 "parse.y" #line 4141 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ; { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
break;} break;}
case 759: case 759:
#line 4135 "parse.y" #line 4143 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;} break;}
case 760: case 760:
#line 4146 "parse.y" #line 4154 "parse.y"
{ {
yyval.ttype = empty_parms(); yyval.ttype = empty_parms();
; ;
break;} break;}
case 762: case 762:
#line 4151 "parse.y" #line 4159 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node); { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ftype.t, void_list_node);
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
break;} break;}
case 763: case 763:
#line 4160 "parse.y" #line 4168 "parse.y"
{ {
yyval.ttype = chainon (yyval.ttype, void_list_node); yyval.ttype = chainon (yyval.ttype, void_list_node);
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 764: case 764:
#line 4165 "parse.y" #line 4173 "parse.y"
{ {
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 765: case 765:
#line 4170 "parse.y" #line 4178 "parse.y"
{ {
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 766: case 766:
#line 4174 "parse.y" #line 4182 "parse.y"
{ {
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 767: case 767:
#line 4179 "parse.y" #line 4187 "parse.y"
{ {
yyval.ttype = NULL_TREE; yyval.ttype = NULL_TREE;
; ;
break;} break;}
case 768: case 768:
#line 4183 "parse.y" #line 4191 "parse.y"
{ {
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 769: case 769:
#line 4187 "parse.y" #line 4195 "parse.y"
{ {
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 770: case 770:
#line 4191 "parse.y" #line 4199 "parse.y"
{ {
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t);
TREE_PARMLIST (yyval.ttype) = 1; TREE_PARMLIST (yyval.ttype) = 1;
; ;
break;} break;}
case 771: case 771:
#line 4196 "parse.y" #line 4204 "parse.y"
{ {
/* This helps us recover from really nasty /* This helps us recover from really nasty
parse errors, for example, a missing right parse errors, for example, a missing right
...@@ -8165,7 +8173,7 @@ case 771: ...@@ -8165,7 +8173,7 @@ case 771:
; ;
break;} break;}
case 772: case 772:
#line 4207 "parse.y" #line 4215 "parse.y"
{ {
/* This helps us recover from really nasty /* This helps us recover from really nasty
parse errors, for example, a missing right parse errors, for example, a missing right
...@@ -8178,98 +8186,98 @@ case 772: ...@@ -8178,98 +8186,98 @@ case 772:
; ;
break;} break;}
case 773: case 773:
#line 4222 "parse.y" #line 4230 "parse.y"
{ maybe_snarf_defarg (); ; { maybe_snarf_defarg (); ;
break;} break;}
case 774: case 774:
#line 4224 "parse.y" #line 4232 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ; { yyval.ttype = yyvsp[0].ttype; ;
break;} break;}
case 777: case 777:
#line 4235 "parse.y" #line 4243 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype); { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
break;} break;}
case 778: case 778:
#line 4238 "parse.y" #line 4246 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype); { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
break;} break;}
case 779: case 779:
#line 4241 "parse.y" #line 4249 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype); { check_for_new_type ("in a parameter list", yyvsp[0].ftype);
yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
break;} break;}
case 780: case 780:
#line 4244 "parse.y" #line 4252 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;} break;}
case 781: case 781:
#line 4246 "parse.y" #line 4254 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
break;} break;}
case 783: case 783:
#line 4252 "parse.y" #line 4260 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype); { check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
break;} break;}
case 784: case 784:
#line 4262 "parse.y" #line 4270 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t); { tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ; yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
break;} break;}
case 785: case 785:
#line 4266 "parse.y" #line 4274 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;} break;}
case 786: case 786:
#line 4269 "parse.y" #line 4277 "parse.y"
{ yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;} break;}
case 787: case 787:
#line 4272 "parse.y" #line 4280 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t); { tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;} break;}
case 788: case 788:
#line 4276 "parse.y" #line 4284 "parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t); { tree specs = strip_attrs (yyvsp[0].ftype.t);
yyval.ftype.t = build_tree_list (specs, NULL_TREE); yyval.ftype.t = build_tree_list (specs, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;} break;}
case 789: case 789:
#line 4280 "parse.y" #line 4288 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype); { tree specs = strip_attrs (yyvsp[-1].ttype);
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
yyval.ftype.new_type_flag = 0; ; yyval.ftype.new_type_flag = 0; ;
break;} break;}
case 790: case 790:
#line 4287 "parse.y" #line 4295 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;} break;}
case 791: case 791:
#line 4290 "parse.y" #line 4298 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;} break;}
case 794: case 794:
#line 4301 "parse.y" #line 4309 "parse.y"
{ see_typename (); ; { see_typename (); ;
break;} break;}
case 795: case 795:
#line 4306 "parse.y" #line 4314 "parse.y"
{ {
error ("type specifier omitted for parameter"); error ("type specifier omitted for parameter");
yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
; ;
break;} break;}
case 796: case 796:
#line 4311 "parse.y" #line 4319 "parse.y"
{ {
error ("type specifier omitted for parameter"); error ("type specifier omitted for parameter");
if (TREE_CODE (yyval.ttype) == SCOPE_REF if (TREE_CODE (yyval.ttype) == SCOPE_REF
...@@ -8280,188 +8288,188 @@ case 796: ...@@ -8280,188 +8288,188 @@ case 796:
; ;
break;} break;}
case 797: case 797:
#line 4323 "parse.y" #line 4331 "parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 798: case 798:
#line 4325 "parse.y" #line 4333 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ; { yyval.ttype = yyvsp[-1].ttype; ;
break;} break;}
case 799: case 799:
#line 4327 "parse.y" #line 4335 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ; { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
break;} break;}
case 800: case 800:
#line 4332 "parse.y" #line 4340 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ; { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
break;} break;}
case 802: case 802:
#line 4338 "parse.y" #line 4346 "parse.y"
{ {
TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
yyval.ttype = yyvsp[0].ttype; yyval.ttype = yyvsp[0].ttype;
; ;
break;} break;}
case 803: case 803:
#line 4346 "parse.y" #line 4354 "parse.y"
{ yyval.ttype = NULL_TREE; ; { yyval.ttype = NULL_TREE; ;
break;} break;}
case 804: case 804:
#line 4348 "parse.y" #line 4356 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 805: case 805:
#line 4350 "parse.y" #line 4358 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;} break;}
case 806: case 806:
#line 4352 "parse.y" #line 4360 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
; ;
break;} break;}
case 807: case 807:
#line 4359 "parse.y" #line 4367 "parse.y"
{ got_scope = NULL_TREE; ; { got_scope = NULL_TREE; ;
break;} break;}
case 808: case 808:
#line 4364 "parse.y" #line 4372 "parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ; { yyval.ttype = ansi_opname[MULT_EXPR]; ;
break;} break;}
case 809: case 809:
#line 4366 "parse.y" #line 4374 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
break;} break;}
case 810: case 810:
#line 4368 "parse.y" #line 4376 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
break;} break;}
case 811: case 811:
#line 4370 "parse.y" #line 4378 "parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ; { yyval.ttype = ansi_opname[PLUS_EXPR]; ;
break;} break;}
case 812: case 812:
#line 4372 "parse.y" #line 4380 "parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ; { yyval.ttype = ansi_opname[MINUS_EXPR]; ;
break;} break;}
case 813: case 813:
#line 4374 "parse.y" #line 4382 "parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
break;} break;}
case 814: case 814:
#line 4376 "parse.y" #line 4384 "parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
break;} break;}
case 815: case 815:
#line 4378 "parse.y" #line 4386 "parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
break;} break;}
case 816: case 816:
#line 4380 "parse.y" #line 4388 "parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
break;} break;}
case 817: case 817:
#line 4382 "parse.y" #line 4390 "parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
break;} break;}
case 818: case 818:
#line 4384 "parse.y" #line 4392 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;} break;}
case 819: case 819:
#line 4386 "parse.y" #line 4394 "parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ; { yyval.ttype = ansi_opname[LT_EXPR]; ;
break;} break;}
case 820: case 820:
#line 4388 "parse.y" #line 4396 "parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ; { yyval.ttype = ansi_opname[GT_EXPR]; ;
break;} break;}
case 821: case 821:
#line 4390 "parse.y" #line 4398 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;} break;}
case 822: case 822:
#line 4392 "parse.y" #line 4400 "parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ; { yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
break;} break;}
case 823: case 823:
#line 4394 "parse.y" #line 4402 "parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ; { yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
break;} break;}
case 824: case 824:
#line 4396 "parse.y" #line 4404 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;} break;}
case 825: case 825:
#line 4398 "parse.y" #line 4406 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;} break;}
case 826: case 826:
#line 4400 "parse.y" #line 4408 "parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
break;} break;}
case 827: case 827:
#line 4402 "parse.y" #line 4410 "parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
break;} break;}
case 828: case 828:
#line 4404 "parse.y" #line 4412 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
break;} break;}
case 829: case 829:
#line 4406 "parse.y" #line 4414 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
break;} break;}
case 830: case 830:
#line 4408 "parse.y" #line 4416 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
break;} break;}
case 831: case 831:
#line 4410 "parse.y" #line 4418 "parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ; { yyval.ttype = ansi_opname[COND_EXPR]; ;
break;} break;}
case 832: case 832:
#line 4412 "parse.y" #line 4420 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ; { yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;} break;}
case 833: case 833:
#line 4414 "parse.y" #line 4422 "parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ; { yyval.ttype = ansi_opname[COMPONENT_REF]; ;
break;} break;}
case 834: case 834:
#line 4416 "parse.y" #line 4424 "parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ; { yyval.ttype = ansi_opname[MEMBER_REF]; ;
break;} break;}
case 835: case 835:
#line 4418 "parse.y" #line 4426 "parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ; { yyval.ttype = ansi_opname[CALL_EXPR]; ;
break;} break;}
case 836: case 836:
#line 4420 "parse.y" #line 4428 "parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ; { yyval.ttype = ansi_opname[ARRAY_REF]; ;
break;} break;}
case 837: case 837:
#line 4422 "parse.y" #line 4430 "parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ; { yyval.ttype = ansi_opname[NEW_EXPR]; ;
break;} break;}
case 838: case 838:
#line 4424 "parse.y" #line 4432 "parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ; { yyval.ttype = ansi_opname[DELETE_EXPR]; ;
break;} break;}
case 839: case 839:
#line 4426 "parse.y" #line 4434 "parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ; { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
break;} break;}
case 840: case 840:
#line 4428 "parse.y" #line 4436 "parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ; { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
break;} break;}
case 841: case 841:
#line 4431 "parse.y" #line 4439 "parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;} break;}
case 842: case 842:
#line 4433 "parse.y" #line 4441 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ; { yyval.ttype = ansi_opname[ERROR_MARK]; ;
break;} break;}
} }
...@@ -8662,7 +8670,7 @@ yyerrhandle: ...@@ -8662,7 +8670,7 @@ yyerrhandle:
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
} }
#line 4436 "parse.y" #line 4444 "parse.y"
#ifdef SPEW_DEBUG #ifdef SPEW_DEBUG
......
...@@ -3293,7 +3293,11 @@ typename_sub0: ...@@ -3293,7 +3293,11 @@ typename_sub0:
else if (TREE_CODE ($2) == IDENTIFIER_NODE) else if (TREE_CODE ($2) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", $2); cp_error ("`%T' is not a class or namespace", $2);
else else
$$ = $2; {
$$ = $2;
if (TREE_CODE ($$) == TYPE_DECL)
$$ = TREE_TYPE ($$);
}
} }
; ;
...@@ -3310,7 +3314,11 @@ typename_sub1: ...@@ -3310,7 +3314,11 @@ typename_sub1:
else if (TREE_CODE ($2) == IDENTIFIER_NODE) else if (TREE_CODE ($2) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", $2); cp_error ("`%T' is not a class or namespace", $2);
else else
$$ = $2; {
$$ = $2;
if (TREE_CODE ($$) == TYPE_DECL)
$$ = TREE_TYPE ($$);
}
} }
; ;
......
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