aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2001-02-14 13:58:49 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2001-02-14 13:58:49 +0000
commit4806765ec47c11611b78a58908db872b1600e45f (patch)
tree0cbb0f7db8e4508a1059ca75ea6c99a3de67183a
parentbfc8e1e2c423851901d3bfb94bcf7ee220adfb23 (diff)
downloadgcc-4806765ec47c11611b78a58908db872b1600e45f.zip
gcc-4806765ec47c11611b78a58908db872b1600e45f.tar.gz
gcc-4806765ec47c11611b78a58908db872b1600e45f.tar.bz2
optional parens around connstructor names
From-SVN: r39681
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parse.y16
2 files changed, 17 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e86e9fb..23d9095 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-08 Aldy Hernandez <aldyh@redhat.com>
+
+ * cp/parse.y (component_constructor_declarator): allow optional
+ parenthesess around constructor class name.
+
2001-02-14 Nathan Sidwell <nathan@codesourcery.com>
* cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y
index a9963ee..59ad4e6 100644
--- a/gcc/cp/parse.y
+++ b/gcc/cp/parse.y
@@ -816,11 +816,19 @@ fn.def1:
YYERROR1; }
;
+/* ANSI allows optional parentheses around constructor class names.
+ See ISO/IEC 14882:1998(E) 12.1. */
+
component_constructor_declarator:
- SELFNAME '(' parmlist ')' cv_qualifiers exception_specification_opt
- { $$ = make_call_declarator ($1, $3, $5, $6); }
- | SELFNAME LEFT_RIGHT cv_qualifiers exception_specification_opt
- { $$ = make_call_declarator ($1, empty_parms (), $3, $4); }
+ SELFNAME '(' parmlist ')' cv_qualifiers exception_specification_opt
+ { $$ = make_call_declarator ($1, $3, $5, $6); }
+ | '(' SELFNAME ')' '(' parmlist ')' cv_qualifiers
+ exception_specification_opt
+ { $$ = make_call_declarator ($2, $5, $7, $8); }
+ | SELFNAME LEFT_RIGHT cv_qualifiers exception_specification_opt
+ { $$ = make_call_declarator ($1, empty_parms (), $3, $4); }
+ | '(' SELFNAME ')' LEFT_RIGHT cv_qualifiers exception_specification_opt
+ { $$ = make_call_declarator ($2, empty_parms (), $5, $6); }
| self_template_type '(' parmlist ')' cv_qualifiers exception_specification_opt
{ $$ = make_call_declarator ($1, $3, $5, $6); }
| self_template_type LEFT_RIGHT cv_qualifiers exception_specification_opt