As PR47283 shows we still have issues with debug insns and the alias
oracle.  This patch makes us give conservative answers for
refs_may_alias_p_1 like we do in the other oracle entires (where
I noticed a bug, fixed with this patch).  I'll keep the assert
for checking-enabled builds as we probably want to fix the issues
nevertheless.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.

Richard.

2011-03-03  Richard Guenther  <rguent...@suse.de>

        PR middle-end/47283
        * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
        match comment.
        (refs_may_alias_p_1): For release branches return true if
        we are confused by our input.

Index: gcc/tree-ssa-alias.c
===================================================================
*** gcc/tree-ssa-alias.c        (revision 170594)
--- gcc/tree-ssa-alias.c        (working copy)
*************** ptr_deref_may_alias_decl_p (tree ptr, tr
*** 178,184 ****
        || (TREE_CODE (decl) != VAR_DECL
          && TREE_CODE (decl) != PARM_DECL
          && TREE_CODE (decl) != RESULT_DECL))
!     return false;
  
    /* Disregard pointer offsetting.  */
    if (TREE_CODE (ptr) == POINTER_PLUS_EXPR)
--- 178,184 ----
        || (TREE_CODE (decl) != VAR_DECL
          && TREE_CODE (decl) != PARM_DECL
          && TREE_CODE (decl) != RESULT_DECL))
!     return true;
  
    /* Disregard pointer offsetting.  */
    if (TREE_CODE (ptr) == POINTER_PLUS_EXPR)
*************** refs_may_alias_p_1 (ao_ref *ref1, ao_ref
*** 1080,1086 ****
--- 1080,1091 ----
                                      ao_ref_alias_set (ref2), -1,
                                      tbaa_p);
  
+   /* We really do not want to end up here, but returning true is safe.  */
+ #ifdef ENABLE_CHECKING
    gcc_unreachable ();
+ #else
+   return true;
+ #endif
  }
  
  bool

Reply via email to