From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5494 invoked by alias); 18 Mar 2003 00:16: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 5427 invoked by uid 71); 18 Mar 2003 00:16:00 -0000 Resent-Date: 18 Mar 2003 00:16:00 -0000 Resent-Message-ID: <20030318001600.5425.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, Marco.Franzen@bigfoot.com Received: (qmail 13960 invoked from network); 18 Mar 2003 00:11:31 -0000 Received: from unknown (HELO o1.out.highstream.com) (66.37.197.39) by sources.redhat.com with SMTP; 18 Mar 2003 00:11:31 -0000 Received: from pika ([62.53.26.157]) by o1.out.highstream.com ; Mon, 17 Mar 2003 19:08:46 -0500 Received: from marco by pika with local (Exim 3.35 #1 (Debian)) id 18v4hK-0001fg-00; Tue, 18 Mar 2003 00:11:18 +0000 Message-Id: Date: Tue, 18 Mar 2003 00:16:00 -0000 From: Marco.Franzen@bigfoot.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: 3.113 Subject: c++/10126: ICE on template code X-SW-Source: 2003-03/txt/msg01184.txt.bz2 List-Id: >Number: 10126 >Category: c++ >Synopsis: ICE on template code >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Tue Mar 18 00:16:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: Marco Franzen >Release: 3.2.2 >Organization: >Environment: System: Linux pika 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i586 unknown Architecture: i586 host: i586-pc-linux-gnu build: i586-pc-linux-gnu target: i586-pc-linux-gnu configured with: ../../src/gcc-3.2.2/configure --prefix=/usr/local/gcc-3.2.2/ --program-suffix=-3.2.2 >Description: The following code results in strawberry ICE scream. >How-To-Repeat: Compile the following code. class Fruit { int theI; public: int const& I () const { return theI; } int & I () { return theI; } }; class Strawberry: public Fruit { public: using Fruit::I; }; class Dish { Strawberry s1; public: template int const & Get() const { return (s1.*fun)(); } }; int main () { Dish dish; dish.Get<&Strawberry::I>(); return 0; } >Fix: >Release-Note: >Audit-Trail: >Unformatted: