diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-06 07:25:24 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-06 07:25:24 +0000 |
commit | 1e7864e44136433004d5c8adb767dddf90830cb4 (patch) | |
tree | 09b0a22654ae562c449d45f3d1fb178722c10a17 /gcc/alias.c | |
parent | 9306644f396b57a5977c121820ef4cf010217f71 (diff) | |
download | gcc-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.c | 14 |
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; |