]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
symtab.c (symtab_node::equal_address_to): Return -1 instead of 2 if we can't determin...
authorUros Bizjak <ubizjak@gmail.com>
Fri, 8 Jan 2016 16:13:18 +0000 (17:13 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 8 Jan 2016 16:13:18 +0000 (17:13 +0100)
* symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
if we can't determine address equivalence.
* alias.c (compare_base_decl): Update for changed return value of
symtab_node::equal_address_to.

From-SVN: r232172

gcc/ChangeLog
gcc/alias.c
gcc/symtab.c

index 4ffc776839fcbad47337a70270f247167da1b352..c3524fcde18cc0b08d1e7bd706d472516f09917c 100644 (file)
@@ -1,3 +1,10 @@
+2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
+
+       * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
+       if we can't determine address equivalence.
+       * alias.c (compare_base_decl): Update for changed return value of
+       symtab_node::equal_address_to.
+
 2016-01-08  Jason Merrill  <jason@redhat.com>
 
        PR c++/68983
index e276d71f0461ecf135469fe9125746df584e9775..1b8390e85bb3893e9ea37ff160742bde202d692a 100644 (file)
@@ -2053,8 +2053,6 @@ compare_base_decls (tree base1, tree base2)
     return 0;
   
   ret = node1->equal_address_to (node2, true);
-  if (ret == 2)
-    return -1;
   return ret;
 }
 
index f7788bede89382be2dc41edee2ef609840c04929..308a489206c3eb7a19fd23b156f1c8057fd236c2 100644 (file)
@@ -1877,7 +1877,7 @@ symtab_node::nonzero_address ()
 
 /* Return 0 if symbol is known to have different address than S2,
    Return 1 if symbol is known to have same address as S2,
-   return 2 otherwise.  
+   return -1 otherwise.  
 
    If MEMORY_ACCESSED is true, assume that both memory pointer to THIS
    and S2 is going to be accessed.  This eliminates the situations when
@@ -1941,7 +1941,7 @@ symtab_node::equal_address_to (symtab_node *s2, bool memory_accessed)
   /* If both symbols may resolve to NULL, we can not really prove them
      different.  */
   if (!memory_accessed && !nonzero_address () && !s2->nonzero_address ())
-    return 2;
+    return -1;
 
   /* Except for NULL, functions and variables never overlap.  */
   if (TREE_CODE (decl) != TREE_CODE (s2->decl))
@@ -1949,7 +1949,7 @@ symtab_node::equal_address_to (symtab_node *s2, bool memory_accessed)
 
   /* If one of the symbols is unresolved alias, punt.  */
   if (rs1->alias || rs2->alias)
-    return 2;
+    return -1;
 
   /* If we have a non-interposale definition of at least one of the symbols
      and the other symbol is different, we know other unit can not interpose
@@ -1976,7 +1976,7 @@ symtab_node::equal_address_to (symtab_node *s2, bool memory_accessed)
      We probably should be consistent and use this fact here, too, but for
      the moment return false only when we are called from the alias oracle.  */
 
-  return memory_accessed && rs1 != rs2 ? 0 : 2;
+  return memory_accessed && rs1 != rs2 ? 0 : -1;
 }
 
 /* Worker for call_for_symbol_and_aliases.  */