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