aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-05-22 10:51:28 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-05-22 06:51:28 -0400
commita0c3333844ecd8ff6ee6a5cb3bdf4221b0a6f167 (patch)
tree5a971ff1a41b82727bc3c9c1a8d6d1a9dacb842f /gcc/tree.c
parent0dab8f8aa3ba781aeb8d6b6c49afe51e9dde78fa (diff)
downloadgcc-a0c3333844ecd8ff6ee6a5cb3bdf4221b0a6f167.zip
gcc-a0c3333844ecd8ff6ee6a5cb3bdf4221b0a6f167.tar.gz
gcc-a0c3333844ecd8ff6ee6a5cb3bdf4221b0a6f167.tar.bz2
alias.c (record_component_aliases): New function.
* alias.c (record_component_aliases): New function. * tree.h: Clean up some declarations and comments. (record_component_aliases): New declaration. * tree.c (get_alias_set): If type and has alias set, use it. From-SVN: r34078
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index f532afe..a62e130 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -5621,10 +5621,15 @@ int
get_alias_set (t)
tree t;
{
+ /* If we're not doing any lanaguage-specific alias analysis, just
+ assume everything aliases everything else. */
if (! flag_strict_aliasing || lang_get_alias_set == 0)
- /* If we're not doing any lanaguage-specific alias analysis, just
- assume everything aliases everything else. */
return 0;
+
+ /* If this is a type with a known alias set, return it since this must
+ be the correct thing to do. */
+ else if (TYPE_P (t) && TYPE_ALIAS_SET_KNOWN_P (t))
+ return TYPE_ALIAS_SET (t);
else
return (*lang_get_alias_set) (t);
}