This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] RFC: Making control flow more explicit
Hello,
> Op za 09-08-2003, om 15:40 schreef Steven Bosscher:
> > Op za 09-08-2003, om 13:58 schreef Steven Bosscher:
> > > In fact it bootstraps c,c++,objc,java,gfortran + libraries. I'm running
> > > the test suites now.
> >
> > Here are the test results for tree-ssa with your patches applied.
> >
> > I've compared these results with
> > http://gcc.gnu.org/ml/gcc-testresults/2003-08/msg00459.html:
> > The g++/objc test summaries are identical, so no c++ regressions.
>
> Unfortunately, with the patches, tree-ssa gcc fails to compile the test
> case for PR8361. I've tried to cut down the huge test case to something
> managable, but it doesn't help, the GIMPLE dump still is huge.
>
> (Note that the attached test case code isn't even valid, but it still
> shows the ICE and that's what mattes.)
it seems there is some problem in exception handling in gcc. The code
(admitedly stupid) I currently produce looks like
try
{
goto bla;
}
finally
{
something;
}
bla: ;
where similar constructs are nested in "something". This causes
problems, as somehow fixup.real_region of ERT_FIXUP gets set to another
ERT_FIXUP. I unfortunately don't understand what except.c is trying to
do to find out what's going wrong. My best guess is
Index: except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.227.2.16
diff -c -3 -p -r1.227.2.16 except.c
*** except.c 25 Jul 2003 12:28:24 -0000 1.227.2.16
--- except.c 10 Aug 2003 09:25:14 -0000
*************** resolve_fixup_regions (void)
*** 930,936 ****
if (j > n)
abort ();
! fixup->u.fixup.real_region = cleanup->outer;
}
}
--- 930,936 ----
if (j > n)
abort ();
! fixup->u.fixup.real_region = cleanup;
}
}
but since the code could not ever work if this was the problem, I am
almost sure something else is wrong.
Zdenek