This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: 3.3 error when inlining
- From: Michael S. Zick <mszick at goquest dot com>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>,Ulrich Weigand <weigand at immd1 dot informatik dot uni-erlangen dot de>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 13 Jun 2003 11:52:13 -0500
- Subject: Re: 3.3 error when inlining
- References: <F426D114-9DA3-11D7-A34F-000393A6D2F2@physics.uc.edu>
On Friday 13 June 2003 08:35 am, Andrew Pinski wrote:
> I think the reason why 2.95.3 did not warn is because it does not have
> the tree-inliner but uses the rtl-inliner.
>
Looking at the code generated by 2.95.3 for that test case...
Well, 2.95.3 is long past fixing; probably not a useful comparison.
But, 2.95.3 (tree-inliner) appears to be trying to create a "single
exit point" function and having trouble handling the explicit return
inside of a conditional and the implicit return from a void function.
It is that combination of conditions it is not handling well.
If, 3.3 (rtl-inliner) is also trying to create a "single exit point" function;
then the problem may lay in the handling of that same combination
of conditions.
Note: After re-writing as a "single exit point" function the label,
the explicit return, the goto and the warning(?) are superfluous.
Under the original "if (0)" version of the test case, then the local
array is unused; with that noted; the entire "inner" should disappear
without a trace - the now (or to be) eleminated "goto label" shouldn't
be forcing the empty function body to be retained.
I'll do some more source level checking and see if I can come up with
useful information.
Mike
>
>
> Thanks,
> Andrew Pinski
>
> On Friday, Jun 13, 2003, at 09:11 US/Eastern, Ulrich Weigand wrote:
> > Michael S. Zick wrote:
> >> Using gcc-2.95.3, compiling to asm (on x86); I can confirm that:
> >> No warnings, No errors, Compiles as expected, all -O? levels.
> >
> > Thanks for the data point. On 3.3 I get the same error with -O3 ...
> >
> > Bye,
> > Ulrich
> >
> > --
> > Dr. Ulrich Weigand
> > weigand@informatik.uni-erlangen.de