aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@unitus.it>2002-04-08 14:29:38 +0200
committerPaolo Carlini <paolo@gcc.gnu.org>2002-04-08 12:29:38 +0000
commit224e6091b476fff44c3dc7a52e9b977cda56add6 (patch)
tree7d4de9c99f3c1fca995dadd5749547f683c44371
parentb57215d9bd0bf6653e24f4faaab6c017c1fd0141 (diff)
downloadgcc-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
-rw-r--r--gcc/cp/ChangeLog8
-rw-r--r--gcc/cp/parse.y10
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? ^^^ */