This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: EH unwind bug


> 
> > 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)) {

    } 

}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]