diff options
author | Simon Martin <simartin@users.sourceforge.net> | 2007-06-25 22:51:12 +0000 |
---|---|---|
committer | Simon Martin <simartin@gcc.gnu.org> | 2007-06-25 22:51:12 +0000 |
commit | b46ce77fe88b9640619b588283830faa1e20a7e3 (patch) | |
tree | f3b96d5aad7a7cdb5c2181ce9c0d24ce28cd352d /gcc/cp | |
parent | aacfb86b57135b8e138963db8b65018631cba0fb (diff) | |
download | gcc-b46ce77fe88b9640619b588283830faa1e20a7e3.zip gcc-b46ce77fe88b9640619b588283830faa1e20a7e3.tar.gz gcc-b46ce77fe88b9640619b588283830faa1e20a7e3.tar.bz2 |
re PR c++/32111 (ICE declaring destructor as friend)
gcc/cp/
2007-06-26 Simon Martin <simartin@users.sourceforge.net>
PR c++/32111
* decl.c (grokdeclarator): Reset friendp for member functions declared
friend of their own class.
gcc/testsuite/
2006-06-26 Simon Martin <simartin@users.sourceforge.net>
PR c++/32111
* g++.dg/other/friend5.C: New test.
From-SVN: r126006
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/decl.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 951faf4..6b661bd 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2007-06-26 Simon Martin <simartin@users.sourceforge.net> + + PR c++/32111 + * decl.c (grokdeclarator): Reset friendp for member functions declared + friend of their own class. + 2007-06-23 Mark Mitchell <mark@codesourcery.com> * decl2.c (determine_visibility): Don't look for dllexport here. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 33f1c2a..7d4123f 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -8057,7 +8057,10 @@ grokdeclarator (const cp_declarator *declarator, if (ctype == current_class_type) { if (friendp) - pedwarn ("member functions are implicitly friends of their class"); + { + pedwarn ("member functions are implicitly friends of their class"); + friendp = 0; + } else pedwarn ("extra qualification %<%T::%> on member %qs", ctype, name); |