cgraph.h (symtab_node::has_aliases_p): Simplify.
authorJan Hubicka <hubicka@ucw.cz>
Sun, 15 Feb 2015 22:30:16 +0000 (23:30 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 15 Feb 2015 22:30:16 +0000 (22:30 +0000)
* cgraph.h (symtab_node::has_aliases_p): Simplify.
(symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
* tree.c (lookup_binfo_at_offset): Make static.
(get_binfo_at_offset): Do not shadow offset; add explanatory
comment.

From-SVN: r220718

gcc/ChangeLog
gcc/cgraph.h
gcc/tree.c

index 71822aa73a407a6fb01b4c228a8b730712a75ac4..b00aa30999aab245c1feddb96e80fe2bb14300a1 100644 (file)
@@ -1,3 +1,11 @@
+2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
+
+       * cgraph.h (symtab_node::has_aliases_p): Simplify.
+       (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
+       * tree.c (lookup_binfo_at_offset): Make static.
+       (get_binfo_at_offset): Do not shadow offset; add explanatory
+       comment.
+
 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
 
        * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
index 6155804db6f0f4140c09587c42da486c486c7cfe..06d270458b00db76788a4b4e15d81e0733839530 100644 (file)
@@ -2338,12 +2338,8 @@ inline bool
 symtab_node::has_aliases_p (void)
 {
   ipa_ref *ref = NULL;
-  int i;
 
-  for (i = 0; iterate_direct_aliases (i, ref); i++)
-    if (ref->use == IPA_REF_ALIAS)
-      return true;
-  return false;
+  return (iterate_direct_aliases (0, ref) != NULL);
 }
 
 /* Return true when RESOLUTION indicate that linker will use
@@ -2984,11 +2980,9 @@ symtab_node::call_for_symbol_and_aliases (bool (*callback) (symtab_node *,
                                          void *data,
                                          bool include_overwritable)
 {
-  ipa_ref *ref;
-
   if (callback (this, data))
     return true;
-  if (iterate_direct_aliases (0, ref))
+  if (has_aliases_p ())
     return call_for_symbol_and_aliases_1 (callback, data, include_overwritable);
   return false;
 }
@@ -3003,13 +2997,10 @@ cgraph_node::call_for_symbol_and_aliases (bool (*callback) (cgraph_node *,
                                          void *data,
                                          bool include_overwritable)
 {
-  ipa_ref *ref;
-
   if (callback (this, data))
     return true;
-  if (iterate_direct_aliases (0, ref))
+  if (has_aliases_p ())
     return call_for_symbol_and_aliases_1 (callback, data, include_overwritable);
-
   return false;
 }
 
@@ -3023,13 +3014,10 @@ varpool_node::call_for_symbol_and_aliases (bool (*callback) (varpool_node *,
                                           void *data,
                                           bool include_overwritable)
 {
-  ipa_ref *ref;
-
   if (callback (this, data))
     return true;
-  if (iterate_direct_aliases (0, ref))
+  if (has_aliases_p ())
     return call_for_symbol_and_aliases_1 (callback, data, include_overwritable);
-
   return false;
 }
 
index 6fe1d5a0d55379dfb263fc65191b02fe8f35a4de..29f70f8ec11045b6cb82aa1a9dfed2315ef3c750 100644 (file)
@@ -11992,7 +11992,7 @@ type_in_anonymous_namespace_p (const_tree t)
 
 /* Lookup sub-BINFO of BINFO of TYPE at offset POS.  */
 
-tree
+static tree
 lookup_binfo_at_offset (tree binfo, tree type, HOST_WIDE_INT pos)
 {
   unsigned int i;
@@ -12045,11 +12045,13 @@ get_binfo_at_offset (tree binfo, HOST_WIDE_INT offset, tree expected_type)
       else if (offset != 0)
        {
          tree found_binfo = NULL, base_binfo;
-         int offset = (tree_to_shwi (BINFO_OFFSET (binfo)) + pos
-                       / BITS_PER_UNIT);
+         /* Offsets in BINFO are in bytes relative to the whole structure
+            while POS is in bits relative to the containing field.  */
+         int binfo_offset = (tree_to_shwi (BINFO_OFFSET (binfo)) + pos
+                            / BITS_PER_UNIT);
 
          for (i = 0; BINFO_BASE_ITERATE (binfo, i, base_binfo); i++)
-           if (tree_to_shwi (BINFO_OFFSET (base_binfo)) == offset
+           if (tree_to_shwi (BINFO_OFFSET (base_binfo)) == binfo_offset
                && types_same_for_odr (TREE_TYPE (base_binfo), TREE_TYPE (fld)))
              {
                found_binfo = base_binfo;
@@ -12058,7 +12060,8 @@ get_binfo_at_offset (tree binfo, HOST_WIDE_INT offset, tree expected_type)
          if (found_binfo)
            binfo = found_binfo;
          else
-           binfo = lookup_binfo_at_offset (binfo, TREE_TYPE (fld), offset);
+           binfo = lookup_binfo_at_offset (binfo, TREE_TYPE (fld),
+                                           binfo_offset);
         }
 
       type = TREE_TYPE (fld);