From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3724 invoked by alias); 24 Jan 2003 14:46:02 -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 3642 invoked by uid 71); 24 Jan 2003 14:46:01 -0000 Date: Fri, 24 Jan 2003 14:46:00 -0000 Message-ID: <20030124144601.3641.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Giovanni Bajo" Subject: Re: c++/9429: ICE in template instantiation with a pointered new operator Reply-To: "Giovanni Bajo" X-SW-Source: 2003-01/txt/msg01416.txt.bz2 List-Id: The following reply was made to PR c++/9429; it has been noted by GNATS. From: "Giovanni Bajo" To: , , , , Cc: Subject: Re: c++/9429: ICE in template instantiation with a pointered new operator Date: Fri, 24 Jan 2003 15:45:32 +0100 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p r=9429 Reduced snippet: ------------------------ struct B { ~B() throw() {} void* foo(void) { return 0; } }; void* operator new(unsigned int, void* __p) { return __p; } void operator delete (void*, void*) { }; void A(void) { (void)new (B().foo()) int(); } ------------------------ ice5.cpp: In function `void A()': ice5.cpp:15: Internal compiler error in convert_from_eh_region_ranges_1, at except.c:1404 Please submit a full bug report, GCC is confused by a temporary with exception specification in destructor created within a placement-new expression. For the submitter, the easy fix is to modify all the Array*Template<>::MakeEntry() so that the temporary is created at function scope instead of within the placement new. Giovanni Bajo