This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix tree-opt/29788, plain CONST_DECL leaking through


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.

And in the case where build an INDIRECT_REF, we already know that
folding won't help.

So it seems to me that you should do this:

		  if (TREE_CODE (new) == ADDR_EXPR)
		    *tp = fold (TREE_OPERAND (new, 0));

That patch is preapproved if it does what you want and passes
bootstrap and testsuite.  Otherwise, please explain why you need to
call fold where you do.

Thanks.

Ian


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