From da48638eff3749271bc9b30e1e9fc70c2ed952ca Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Fri, 10 Sep 1999 16:07:18 +0000 Subject: [PATCH] tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields when comparing types. Fri Sep 10 16:48:26 1999 Andrew Haley * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields when comparing types. From-SVN: r29271 --- gcc/ChangeLog | 5 +++++ gcc/tree.c | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7161319..f5d0413 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Sep 10 16:48:26 1999 Andrew Haley + + * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields + when comparing types. + Wed Sep 8 16:12:04 1999 Andrew Haley * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used diff --git a/gcc/tree.c b/gcc/tree.c index 2dc6361..b10ce01 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -3672,12 +3672,18 @@ type_hash_lookup (hashcode, type) tree type; { register struct type_hash *h; + + /* The TYPE_ALIGN field of a type is set by layout_type(), so we + must call that routine before comparing TYPE_ALIGNs. */ + layout_type (type); + for (h = type_hash_table[hashcode % TYPE_HASH_SIZE]; h; h = h->next) if (h->hashcode == hashcode && TREE_CODE (h->type) == TREE_CODE (type) && TREE_TYPE (h->type) == TREE_TYPE (type) && attribute_list_equal (TYPE_ATTRIBUTES (h->type), TYPE_ATTRIBUTES (type)) + && TYPE_ALIGN (h->type) == TYPE_ALIGN (type) && (TYPE_MAX_VALUE (h->type) == TYPE_MAX_VALUE (type) || tree_int_cst_equal (TYPE_MAX_VALUE (h->type), TYPE_MAX_VALUE (type))) -- 2.7.4