summaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-06 07:25:24 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-06 07:25:24 +0000
commit1e7864e44136433004d5c8adb767dddf90830cb4 (patch)
tree09b0a22654ae562c449d45f3d1fb178722c10a17 /gcc/alias.c
parent9306644f396b57a5977c121820ef4cf010217f71 (diff)
downloadgcc-1e7864e44136433004d5c8adb767dddf90830cb4.tar.gz
2008-05-06 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r134973 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@134974 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index 2e4f5aebdb4..b29abf70324 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -305,8 +305,9 @@ alias_set_subset_of (alias_set_type set1, alias_set_type set2)
/* Otherwise, check if set1 is a subset of set2. */
ase = get_alias_set_entry (set2);
if (ase != 0
- && (splay_tree_lookup (ase->children,
- (splay_tree_key) set1)))
+ && ((ase->has_zero_child && set1 == 0)
+ || splay_tree_lookup (ase->children,
+ (splay_tree_key) set1)))
return true;
return false;
}
@@ -739,9 +740,8 @@ record_alias_subset (alias_set_type superset, alias_set_type subset)
/* Record that component types of TYPE, if any, are part of that type for
aliasing purposes. For record types, we only record component types
- for fields that are marked addressable. For array types, we always
- record the component types, so the front end should not call this
- function if the individual component aren't addressable. */
+ for fields that are not marked non-addressable. For array types, we
+ only record the component type if it is not marked non-aliased. */
void
record_component_aliases (tree type)
@@ -755,7 +755,7 @@ record_component_aliases (tree type)
switch (TREE_CODE (type))
{
case ARRAY_TYPE:
- if (! TYPE_NONALIASED_COMPONENT (type))
+ if (!TYPE_NONALIASED_COMPONENT (type))
record_alias_subset (superset, get_alias_set (TREE_TYPE (type)));
break;
@@ -774,7 +774,7 @@ record_component_aliases (tree type)
get_alias_set (BINFO_TYPE (base_binfo)));
}
for (field = TYPE_FIELDS (type); field != 0; field = TREE_CHAIN (field))
- if (TREE_CODE (field) == FIELD_DECL && ! DECL_NONADDRESSABLE_P (field))
+ if (TREE_CODE (field) == FIELD_DECL && !DECL_NONADDRESSABLE_P (field))
record_alias_subset (superset, get_alias_set (TREE_TYPE (field)));
break;