diff options
author | Paolo Carlini <pcarlini@unitus.it> | 2002-04-08 14:29:38 +0200 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2002-04-08 12:29:38 +0000 |
commit | 224e6091b476fff44c3dc7a52e9b977cda56add6 (patch) | |
tree | 7d4de9c99f3c1fca995dadd5749547f683c44371 /gcc | |
parent | b57215d9bd0bf6653e24f4faaab6c017c1fd0141 (diff) | |
download | gcc-224e6091b476fff44c3dc7a52e9b977cda56add6.zip gcc-224e6091b476fff44c3dc7a52e9b977cda56add6.tar.gz gcc-224e6091b476fff44c3dc7a52e9b977cda56add6.tar.bz2 |
parse.y (namespace_qualifier, [...]): Add ending ';', in accordance with POSIX.
2002-04-08 Paolo Carlini <pcarlini@unitus.it>
* parse.y (namespace_qualifier, maybe_identifier,
begin_explicit_instantiation, end_explicit_instantiation,
apparent_template_type, .finish_template_type,
do_id, maybe_init, defarg_again, component_decl_1):
Add ending ';', in accordance with POSIX.
From-SVN: r52026
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cp/parse.y | 10 |
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1d2470a..940afa0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,11 @@ +2002-04-08 Paolo Carlini <pcarlini@unitus.it> + + * parse.y (namespace_qualifier, maybe_identifier, + begin_explicit_instantiation, end_explicit_instantiation, + apparent_template_type, .finish_template_type, + do_id, maybe_init, defarg_again, component_decl_1): + Add ending ';', in accordance with POSIX. + 2002-04-06 Mark Mitchell <mark@codesourcery.com> PR c++/5571 diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y index 7988ec3..8a33c87 100644 --- a/gcc/cp/parse.y +++ b/gcc/cp/parse.y @@ -593,6 +593,7 @@ namespace_qualifier: $$ = lastiddecl; got_scope = $$; } + ; any_id: unqualified_id @@ -642,6 +643,7 @@ maybe_identifier: { $$ = $1; } | /* empty */ { $$ = NULL_TREE; } + ; template_type_parm: aggr maybe_identifier @@ -1039,9 +1041,11 @@ explicit_instantiation: begin_explicit_instantiation: { begin_explicit_instantiation(); } + ; end_explicit_instantiation: { end_explicit_instantiation(); } + ; /* The TYPENAME expansions are to deal with use of a template class name as a template within the class itself, where the template decl is hidden by @@ -1062,6 +1066,7 @@ apparent_template_type: | identifier '<' template_arg_list_opt '>' .finish_template_type { $$ = $5; } + ; self_template_type: SELFNAME '<' template_arg_list_opt template_close_bracket @@ -1077,6 +1082,7 @@ self_template_type: $$ = finish_template_type ($<ttype>-3, $<ttype>-1, yychar == SCOPE); } + ; template_close_bracket: '>' @@ -1496,6 +1502,7 @@ do_id: else $$ = $<ttype>-1; } + ; template_id: PFUNCNAME '<' do_id template_arg_list_opt template_close_bracket @@ -2182,6 +2189,7 @@ maybe_init: { $$ = NULL_TREE; } | '=' init { $$ = $2; } + ; /* If we are processing a template, we don't want to expand this initializer yet. */ @@ -2246,6 +2254,7 @@ defarg_again: { replace_defarg ($1, $2); } | DEFARG_MARKER error END_OF_SAVED_INPUT { replace_defarg ($1, error_mark_node); } + ; pending_defargs: /* empty */ %prec EMPTY @@ -2677,6 +2686,7 @@ component_decl_1: { $$ = grokfield ($$, NULL_TREE, $4, $2, $3); } | using_decl { $$ = do_class_using_decl ($1); } + ; /* The case of exactly one component is handled directly by component_decl. */ /* ??? Huh? ^^^ */ |