This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/8582: [3.2 regression] ICE in exception handling
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: gcc-gnats at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, gawrilow at math dot tu-berlin dot de, gcc-bugs at gcc dot gnu dot org, nobody at gcc dot gnu dot org, jason at redhat dot com
- Date: Fri, 20 Dec 2002 14:50:24 -0800
- Subject: Re: c++/8582: [3.2 regression] ICE in exception handling
- Organization: IBM
- Reply-to: janis187 at us dot ibm dot com
The regression reported in PR c++/8582 was fixed in the
mainline with this patch, but still exists in the 3.2 branch:
gcc (really 2002-04-04):
2002-04-03 Jason Merrill <jason@redhat.com>
* except.c
* except.h
* expr.c
PR c++/5636
* tree.h
* stmt.c
* c-semantics.c
* c-common.h
gcc/cp:
2002-04-04 Jason Merrill <jason@redhat.com>
* semantics.c
* cp-tree.h
* init.c
* cp-tree.def
* cp-tree.h
* decl.c
* dump.c
* pt.c
* tree.c
* init.c
PR c++/5636
* semantics.c
PR c++/5104
* typeck.c
Here's a small test case that causes the compiler to ICE
when compiled on i686-linux:
-------------------
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);
}
-------------------
Output from the 3.2 branch compiler:
8582.C: In constructor `C::C(A&)':
8582.C:21: Internal compiler error in convert_from_eh_region_ranges_1,
at
except.c:1404
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8582