[PATCH] Fix PR54781

Richard Biener rguenther@suse.de
Mon Dec 17 13:00:00 GMT 2012


On Mon, 17 Dec 2012, Jakub Jelinek wrote:

> On Mon, Dec 17, 2012 at 01:45:54PM +0100, Richard Biener wrote:
> > --- 283,302 ----
> >     if (base == NULL_TREE)
> >       return false;
> >   
> > !   /* The tree oracle doesn't like bases that are neither decls
> > !      nor indirect references of SSA names.  */
> > !   if (!DECL_P (base)
> > !       && (TREE_CODE (base) != MEM_REF
> > ! 	  || TREE_CODE (TREE_OPERAND (base, 0)) != SSA_NAME)
> > !       && (TREE_CODE (base) != TARGET_MEM_REF
> > ! 	  || TREE_CODE (TMR_BASE (base)) != SSA_NAME))
> >       return false;
> 
> Wouldn't it be far more readable if you used ! around the whole condition?
> I.e.
>   if (!(DECL_P (base)
> 	|| (TREE_CODE (base) == MEM_REF
> 	    && TREE_CODE (TREE_OPERAND (base, 0)) == SSA_NAME)
> 	...))
> ?

True ...

> Also, the old code wouldn't let FUNCTION_DECL/LABEL_DECL through, you are
> now letting those through, is that desirable?

Yes, the oracle handles them just fine (by rejecting them).

I'll adjust the patch.

Richard.



More information about the Gcc-patches mailing list