aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-02-15 23:30:16 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-02-15 22:30:16 +0000
commit190bbd0b03d92d0879ec56f21d5733170f9f9978 (patch)
tree4f786f92b69387a69a14ef0957b60b15265f4203 /gcc/tree.c
parentfeb675e4087d78e3a3a47d57a220773d80a6d747 (diff)
downloadgcc-190bbd0b03d92d0879ec56f21d5733170f9f9978.zip
gcc-190bbd0b03d92d0879ec56f21d5733170f9f9978.tar.gz
gcc-190bbd0b03d92d0879ec56f21d5733170f9f9978.tar.bz2
cgraph.h (symtab_node::has_aliases_p): Simplify.
* 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
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index 6fe1d5a..29f70f8 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -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);