From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23413 invoked by alias); 11 Feb 2003 11:06:01 -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 23399 invoked by uid 71); 11 Feb 2003 11:06:00 -0000 Date: Tue, 11 Feb 2003 11:06:00 -0000 Message-ID: <20030211110600.23398.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: MAudouy@amadeus.net Subject: Re: c++/9660: use of template keyword to specify templated method cause ICE Reply-To: MAudouy@amadeus.net X-SW-Source: 2003-02/txt/msg00491.txt.bz2 List-Id: The following reply was made to PR c++/9660; it has been noted by GNATS. From: MAudouy@amadeus.net To: gdr@integrable-solutions.net Cc: gcc-gnats@gcc.gnu.org, gdr@integrable-solutions.net Subject: Re: c++/9660: use of template keyword to specify templated method cause ICE Date: Tue, 11 Feb 2003 11:02:15 +0000 You are right, I have not noticed this peculiarity (14.2/5) before. this PR should be reclassified as ice-on-illegal-code then Marc Audouy From: Gabriel Dos Reis @integrable-solutions.net on 11/02/2003 11:53 CET Sent by: gdr@integrable-solutions.net To: maudouy@amadeus.net cc: gcc-gnats@gcc.gnu.org Subjec Re: c++/9660: use of template t: keyword to specify templated method cause ICE maudouy@amadeus.net writes: | >Number: 9660 | >Category: c++ | >Synopsis: use of template keyword to specify templated method cause ICE | >Confidential: no | >Severity: serious | >Priority: medium | >Responsible: unassigned | >State: open | >Class: ice-on-legal-code I believe your program is ill-formed, and I would suggest this PR be reclassified as ice-on-illegal-code. 14.2/5 If a name prefixed by the keyword template is not the name of a member template, the program is ill-formed. [...] | >Fix: | an easy workaround is not to use the template keyword, it works in this case. but when using other compilers (like aCC on HP-UX) it is necessary. Those compilers are in error, AFAICT. [...] | class B { | public: | A& getA(int a, int b) | { | A& anA = TOTO::template create(a,b); ^^^^^^^^^^^^^^ That is not valid; see 14.2/5 quoted above. -- Gaby