From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8831 invoked by alias); 15 Dec 2001 15: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 8799 invoked by uid 71); 15 Dec 2001 15:06:01 -0000 Resent-Date: 15 Dec 2001 15:06:01 -0000 Resent-Message-ID: <20011215150601.8798.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, dlenev@spylog.ru Received:(qmail 7910 invoked from network); 15 Dec 2001 15:00:04 -0000 Received: from unknown (HELO mail.spylog.com) (194.67.35.220) by sources.redhat.com with SMTP; 15 Dec 2001 15:00:04 -0000 Received: from dlenev.local (dlenev.local [192.168.4.20]) by mail.spylog.com (Postfix) with ESMTP id F183C2C1FB for ; Sat, 15 Dec 2001 18:00:03 +0300 (MSK) Received: by dlenev.local (Postfix on SuSE Linux 7.3 (i386), from userid 500) id 35AFA1CF94; Sat, 15 Dec 2001 17:59:51 +0300 (MSK) Message-Id:<20011215145951.35AFA1CF94@dlenev.local> Date: Sat, 15 Dec 2001 07:06:00 -0000 From: dlenev@spylog.ru Reply-To: dlenev@spylog.ru To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:3.113 Subject: c++/5125: both g++ 3.0.1 and 2.95.3 crash with internal error when trying compile template method with parameter pointer to method X-SW-Source: 2001-12/txt/msg00862.txt.bz2 List-Id: >Number: 5125 >Category: c++ >Synopsis: both g++ 3.0.1 and 2.95.3 crash with internal error when trying compile template method with parameter pointer to method >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Sat Dec 15 07:06:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: Dmitri Lenev >Release: 3.0.1 (SuSE) >Organization: >Environment: System: Linux dlenev 2.4.10-4GB #1 Tue Sep 25 12:33:54 GMT 2001 i686 unknown Architecture: i686 host: i486-suse-linux-gnu build: i486-suse-linux-gnu target: i486-suse-linux-gnu configured with: ../configure --enable-threads=posix --enable-long-long --prefix=/opt/experimental --with-local-prefix=/usr/local --enable-languages=c,c++,f77,objc,java --disable-nls --enable-shared i486-suse-linux >Description: both g++ 3.0.1 and 2.95.3 crash with internal error when trying compile next code: >How-To-Repeat: // Code starts typedef unsigned int size_t; class SerializationStream { public: template size_t serialize(const I& item); template size_t serializeMember(unsigned int member, const I& item); template size_t serializeMember(unsigned int member, const I& item, size_t (I::* serialization_function)(SerializationStream& stream) const ); private: }; template inline size_t SerializationStream::serialize(const I& item) { return item.serialize(*this); } template<> inline size_t SerializationStream::serialize(const unsigned int & item) { return sizeof(int); } template inline size_t SerializationStream::serializeMember(unsigned int member, const I& item) { serialize(member); size_t valueSize = serialize(item); serialize(valueSize); return sizeof(int) + sizeof(int) + valueSize; } template inline size_t SerializationStream::serializeMember(unsigned int member, const I& item , size_t (I::* serialization_function)(SerializationSream& stream) const ) { serialize(member); size_t valueSize = item.*serialization_function(*this); serialize(valueSize); return sizeof(int) + sizeof(int) + valueSize; } int main(int argc, char **argv) { } // end code Preprocessor code almost matches source >Fix: >Release-Note: >Audit-Trail: >Unformatted: