diff options
author | Scott Brumbaugh <scottb.lists@verizon.net> | 2003-09-02 23:22:10 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2003-09-02 23:22:10 +0000 |
commit | 1918facfd12f3b3466d877a093ff8fc3ef80b668 (patch) | |
tree | 1d5c6c517f54ce593935edad36f312bbffe48bdf /gcc | |
parent | 48c2d88a10fa91e85008de2421347588bf65384b (diff) | |
download | gcc-1918facfd12f3b3466d877a093ff8fc3ef80b668.zip gcc-1918facfd12f3b3466d877a093ff8fc3ef80b668.tar.gz gcc-1918facfd12f3b3466d877a093ff8fc3ef80b668.tar.bz2 |
re PR c++/11553 (g++ accepts duplicate 'friend')
PR c++/11553
* parser.c (cp_parser_decl_specifier_seq): Add check for a
duplicate friend decl-specifier.
PR c++/11553
* g++.dg/parse/friend3.C: New test.
From-SVN: r71008
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/parser.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/parse/friend3.C | 10 |
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b24258b..fbee4d6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2003-09-02 Scott Brumbaugh <scottb.lists@verizon.net> + + PR c++/11553 + * parser.c (cp_parser_decl_specifier_seq): Add check for a + duplicate friend decl-specifier. + 2003-09-02 Mark Mitchell <mark@codesourcery.com> PR c++/11847 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 01d6dba..916b042 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -6312,7 +6312,10 @@ cp_parser_decl_specifier_seq (cp_parser* parser, case RID_FRIEND: /* decl-specifier: friend */ - friend_p = true; + if (friend_p) + error ("duplicate `friend'"); + else + friend_p = true; /* The representation of the specifier is simply the appropriate TREE_IDENTIFIER node. */ decl_spec = token->value; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2cac015..57b9436 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2003-09-02 Scott Brumbaugh <scottb.lists@verizon.net> + + PR c++/11553 + * g++.dg/parse/friend3.C: New test. + 2003-09-02 Mark Mitchell <mark@codesourcery.com> PR c++/11847 diff --git a/gcc/testsuite/g++.dg/parse/friend3.C b/gcc/testsuite/g++.dg/parse/friend3.C new file mode 100644 index 0000000..3932202 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/friend3.C @@ -0,0 +1,10 @@ +// { dg-do compile } +// +// PR 11553 catch duplicate friend specifiers + +struct S +{ + friend friend class C; // { dg-error "duplicate" } +}; + + |