c++/7880: Internal compiler error when passing template class to new operator

Volker Reichelt reichelt@igpm.rwth-aachen.de
Thu Nov 21 06:56:00 GMT 2002


The following reply was made to PR c++/7880; it has been noted by GNATS.

From: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
To: james@tga.com, gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org,
        nobody@gcc.gnu.org
Cc: celliott@tga.com
Subject: Re: c++/7880: Internal compiler error when passing template class to new operator
Date: Fri, 15 Nov 2002 14:08:20 +0100

 Hi,
 
 the templates have nothing to do with the problems
 (I'll therefore change the synopsis of the PR).
 The testcase can be reduced to the following code snippet
 without templates that still crashes the compiler.
 
 ------------------------------snip here------------------------
 typedef unsigned int size_t;
 
 struct A
 {
     ~A();
 };
 
 struct B
 {
     void  operator delete (void *, A);
     void* operator new    (size_t, A);
     B();
 };
 
 struct C
 {
     A bar();
 };
 
 void foo()
 {
     new(C().bar()) B;
 }
 ------------------------------snip here------------------------
 
 With gcc 3.0.x - 3.2.1 I get the following ICE:
 
 PR7880.cc: In function `void foo()':
 PR7880.cc:23: Internal compiler error in convert_from_eh_region_ranges_1, at 
    except.c:1404
 Please submit a full bug report, [etc.]
 
 With gcc 2.95.3 I also get an ICE.
 The problem seems to be fixed in mainline.
 
 BTW, the bug has probably the same reason as PR 8582.
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8582
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7880
 
 



More information about the Gcc-prs mailing list