diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8eb3705398..df496a0fe73 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-23 Graham Stott + + * expr.c (store_constructor): If a field is non addressable and + the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set. + 2000-11-23 Bernd Schmidt * flow.c (print_rtl_and_abort): New function. diff --git a/gcc/expr.c b/gcc/expr.c index e9cd6eb9002..cbe46dd9558 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4408,7 +4408,8 @@ store_constructor (exp, target, align, cleared, size) #endif store_constructor_field (to_rtx, bitsize, bitpos, mode, TREE_VALUE (elt), type, align, cleared, - DECL_NONADDRESSABLE_P (field) + (DECL_NONADDRESSABLE_P (field) + && GET_CODE (to_rtx) == MEM) ? MEM_ALIAS_SET (to_rtx) : get_alias_set (TREE_TYPE (field))); }