[Bug c++/26912] [4.0/4.1/4.2 Regression] friend const member function specialization fails to compile
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26912
[Bug c++/26912] [4.0/4.1/4.2 Regression] friend const member function specialization fails to compile
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |mark at codesourcery dot com |dot org | Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26912
[Bug c++/26912] [4.0/4.1/4.2 Regression] friend const member function specialization fails to compile
--- Comment #2 from mmitchel at gcc dot gnu dot org 2006-04-24 03:50 --- Subject: Bug 26912 Author: mmitchel Date: Mon Apr 24 03:50:31 2006 New Revision: 113213 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113213 Log: PR c++/26912 * cp-tree.h (build_this_parm): Declare. (grok_method_quals): Remove. (build_memfn_type): Declare. (build_artificial_parm): Declare. (do_friend): Remove quals parameter. * decl.c (build_this_parm): New function. (grokfndecl): Use it. Do not pass quals to grokclassfn. (grokdeclarator): Rename quals to memfn_quals. Avoid allocating unnecessary TYPE_DECLs. Correct qualification of member function types. Tidy. * method.c (implicitly_declare_fn): Use build_this_parm. * friend.c (do_friend): Remove quals parameter. * decl2.c (grok_method_quals): Remove. (build_memfn_type): New function. (build_artificial_parm): Give it external linkage. (grokclassfn): Remove quals parameter. Do not build "this" PARM_DECL here. PR c++/26912 * g++.dg/template/friend41.C: New test. Added: trunk/gcc/testsuite/g++.dg/template/friend41.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/decl2.c trunk/gcc/cp/friend.c trunk/gcc/cp/method.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26912
[Bug c++/26912] [4.0/4.1/4.2 Regression] friend const member function specialization fails to compile
--- Comment #1 from rguenth at gcc dot gnu dot org 2006-03-29 09:32 --- Confirmed. struct Foo { template int func() ; }; class Bar { friend int Foo::func() const ; // line 6 }; is also invalidly accepted. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords||accepts-invalid, rejects- ||valid Known to fail||3.3.5 4.0.3 4.1.0 4.2.0 Known to work||3.4.6 Last reconfirmed|-00-00 00:00:00 |2006-03-29 09:32:16 date|| Summary|friend const member function|[4.0/4.1/4.2 Regression] |specialization fails to |friend const member function |compile |specialization fails to ||compile Target Milestone|--- |4.1.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26912