diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree.c | 6 |
2 files changed, 11 insertions, 0 deletions
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 <aph@cygnus.com> + + * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields + when comparing types. + Wed Sep 8 16:12:04 1999 Andrew Haley <aph@cygnus.com> * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used @@ -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))) |