From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11175 invoked by alias); 17 May 2002 13:16:11 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 11106 invoked by uid 71); 17 May 2002 13:16:04 -0000 Resent-Date: 17 May 2002 13:16:03 -0000 Resent-Message-ID: <20020517131603.11105.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, benko@sztaki.hu Received:(qmail 5574 invoked by uid 61); 17 May 2002 13:06:06 -0000 Message-Id:<20020517130606.5562.qmail@sources.redhat.com> Date: Fri, 17 May 2002 06:16:00 -0000 From: benko@sztaki.hu Reply-To: benko@sztaki.hu To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/6695: Regression: template friend declaration doesn't work X-SW-Source: 2002-05/txt/msg00497.txt.bz2 List-Id: >Number: 6695 >Category: c++ >Synopsis: Regression: template friend declaration doesn't work >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Fri May 17 06:16:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Benko Pal >Release: 3.1 >Organization: >Environment: SuSE 7.3, i686 >Description: I want all instances of a class template be friends of each other. The syntax template class a { template friend class a; }; works; it works even if this class is nested in another class b. But if this class b is itself a template, then I got an error. With 3.0.4 it worked. >How-To-Repeat: arta:~/c/proba$ g++3 templfriend2.cc templfriend2.cc: In constructor `b::a::a(const b::a&) [with T = char, V = void*]': templfriend2.cc:44: instantiated from here templfriend2.cc:12: `char*b::a::t_' is private templfriend2.cc:29: within this context zsh: exit 1 g++3 templfriend2.cc arta:~/c/proba$ g++3 templfriend2.cc -DWORKS arta:~/c/proba$ /gml/shared/gcc-3.0.4/bin/g++ templfriend2.cc arta:~/c/proba$ g++3 -v Reading specs from /gml/shared/gcc-3.1/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs Configured with: ../gcc-3.1/configure --prefix=/gml/shared/gcc-3.1 --enable-languages=c++ --with-dwarf2 --enable-threads=posix Thread model: posix gcc version 3.1 arta:~/c/proba$ /gml/shared/gcc-3.0.4/bin/g++ -v Reading specs from /gml/shared/gcc-3.0.4/lib/gcc-lib/i686-pc-linux-gnu/3.0.4/specs Configured with: ../gcc-3.0.4/configure --prefix=/gml/shared/gcc-3.0.4 --enable-threads=posix --enable-languages=c++ Thread model: posix gcc version 3.0.4 arta:~/c/proba$ >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="templfriend2.cc" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="templfriend2.cc" IyBpZm5kZWYgV09SS1MKdGVtcGxhdGUgPHR5cGVuYW1lIFY+CiMgZW5kaWYgLy8gV09SS1MKc3Ry dWN0IGIKewogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogIGNsYXNzIGEKICB7CiAgICB0ZW1wbGF0 ZSA8dHlwZW5hbWU+CiAgICBmcmllbmQgY2xhc3MgYTsKCiAgICBUIHRfOwoKICAgcHVibGljOgog ICAgYSgpIHt9CiAgICBhKGE8VCAqPiBjb25zdCAmKTsKICB9Owp9OwoKIyBpZm5kZWYgV09SS1MK dGVtcGxhdGUgPHR5cGVuYW1lIFY+CiMgZW5kaWYgLy8gV09SS1MKdGVtcGxhdGUgPHR5cGVuYW1l IFQ+CmIKIyBpZm5kZWYgV09SS1MKPFY+CiMgZW5kaWYgLy8gV09SS1MKOjphPFQ+OjphKGE8VCAq PiBjb25zdCAmcmhzKTogdF8oKnJocy50XykKe30KCgppbnQKbWFpbigpCnsKICBiCiMgaWZuZGVm IFdPUktTCiAgICA8dm9pZCAqPgojIGVuZGlmIC8vIFdPUktTCiAgICA6OmE8Y2hhciAqPiBxOwog IGIKIyBpZm5kZWYgV09SS1MKICAgIDx2b2lkICo+CiMgZW5kaWYgLy8gV09SS1MKICAgIDo6YTxj aGFyPiB3KHEpOwoKICByZXR1cm4gMDsKfQo=