[PATCH] Fix PR54781

Jakub Jelinek jakub@redhat.com
Mon Dec 17 12:58:00 GMT 2012


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)
	...))
?

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

	Jakub



More information about the Gcc-patches mailing list