c++/8582: 3.2.1 pre-release: ICE in exception handling

Volker Reichelt reichelt@igpm.rwth-aachen.de
Thu Nov 14 13:23:00 GMT 2002


Here's a reduced testcase:

----------------------------snip here-------------------------------
void* operator new(unsigned int, void*) throw();
void operator delete (void*, void*) throw();

struct A { A(); };

struct B
{
   struct X
   {
      ~X();
      operator void* () const;
   };

   X bar();
};

struct C
{
   B b;

   C(A&) { new(b.bar()) A; }
};

void foo()
{
   A a;
   C c(a);
}
----------------------------snip here-------------------------------

This one crashes gcc 3.0.x, gcc 3.1 - gcc 3.2.1:

bug.cc: In constructor `C::C(A&)':
bug.cc:21: Internal compiler error in convert_from_eh_region_ranges_1, at
   except.c:1404
Please submit a full bug report, [etc.]

However, it does not crash gcc 2.95.3 (regression!) and mainline.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8582




More information about the Gcc-bugs mailing list