This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: EH unwind bug
- To: Jason Merrill <jason at cygnus dot com>
- Subject: Re: EH unwind bug
- From: Thomas Weise <tom at zaphod dot wh9 dot tu-dresden dot de>
- Date: Tue, 02 Dec 1997 17:51:15 +0000
- CC: egcs-bugs at cygnus dot com, egcs at cygnus dot com
- Organization: Dresden University of Technology
- References: <347B076D.6F1CEC10.cygnus.egcs.bugs@zaphod.wh9.tu-dresden.de> <u9btz0cs9q.fsf@yorick.cygnus.com>
>
> > stackObj::~stackObj()
> > stackObj::~stackObj()
> > IOT trap/Abort
>
> ./:
> Mon Dec 1 19:48:53 1997 Jason Merrill <jason@yorick.cygnus.com>
>
> * except.c (expand_fixup_region_end): New fn.
> * stmt.c (expand_cleanups): Use it to protect fixups.
>
> cp/:
> Mon Dec 1 19:32:43 1997 Jason Merrill <jason@yorick.cygnus.com>
>
> * exception.cc (__cp_pop_exception): Lose handler arg.
> * except.c (do_pop_exception): Likewise.
> (push_eh_cleanup): Let the cleanup mechanism supply the handler.
> (expand_end_catch_block): Likewise.
[ http://www.cygnus.com/ml/egcs-bugs/1997-Dec/0008.html ]
I've assigned this patch to egcs971201 and it fixes the testcase.
Unfortunately I get a new internal error, please see the testcase below.
tom@hermes:/home/tom > g++ -v
Reading specs from
/usr/local/lib/gcc-lib/i486-pc-linux-gnulibc1/egcs-2.90.20/specs
gcc version egcs-2.90.20 971201 (gcc2-970802 experimental)
tom@hermes:/home/tom > g++ bug3.cc
bug3.cc: In method `void foo::op(unsigned char = false)':
bug3.cc:33: Internal compiler error.
bug3.cc:33: Please submit a full bug report to `egcs-bugs@cygnus.com'.
class base {
public:
virtual ~base();
};
class foo : public base {
public :
foo (char *cs);
virtual void op (unsigned char dummy = false);
unsigned char m_dummy;
};
void foo :: op ( unsigned char dummy)
{
bool bar;
if (dummy) {
foo IT_tempPhase( 0 );
return;
}
if ((m_dummy || bar)) {
}
}