[PATCH] Fix tree-opt/29788, plain CONST_DECL leaking through
Andrew Pinski
pinskia@gmail.com
Wed Nov 15 05:09:00 GMT 2006
On Tue, 2006-11-14 at 10:36 -0800, Andrew Pinski wrote:
> On Tue, 2006-11-14 at 10:14 -0800, Ian Lance Taylor wrote:
> > Andrew Pinski <pinskia@gmail.com> writes:
> >
> > > * tree-inline.c (copy_body_r): Call fold after folding indirect
> > > reference.
> > >
> > > * gfortran.fortran-torture/compile/inline_1.f90: New test.
> >
> > > + *tp = fold (*tp);
> >
> > I don't understand why this call to fold is needed if
> > fold_indirect_ref_1 returned a non-NULL value. In that case, it seems
> > to me that we will have already folded the value.
>
> The reason issue is fold_indirect_ref_1 does not fold a CONST_DECL after
> folding *&CONST_DECL. I have a better fix which was recommended by
> Roger.
Here is the patch which fixes the problem but moves the folding of
*&CONST_DECL -> DECL_INITIAL (CONST_DECL) to fold_indirect_ref.
OK ? Bootstrapped and tested on i686-linux-gnu with no regressions.
Thanks,
Andrew Pinski
ChangeLog:
* fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
to what is the const decl is a place holder for.
* gfortran.fortran-torture/compile/inline_1.f90: New testcase.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fixfoldconst.diff.txt
Type: text/x-patch
Size: 1212 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/fortran/attachments/20061115/940b1817/attachment.bin>
More information about the Fortran
mailing list