diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ba346a1950e4f48d736acc51d15f19cd9d623544..231007ba907127285e6f83b0635ab8a33823b38c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Apr 1 12:04:05 1999 Jim Wilson <wilson@cygnus.com> + + * expr.c (store_field): When check direct_store, assume all complex + modes can be directly stored. + 1999-04-01 Bruce Korb <ddsinc09@ix.netcom.com> * fixinc/genfixes: new shell script that runs autogen diff --git a/gcc/expr.c b/gcc/expr.c index ab533141bf58f1ffda1a8d52086cae8db18825e9..3c18b73003845d20b10116a12cc92e9e7dd2052a 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4608,7 +4608,9 @@ store_field (target, bitsize, bitpos, mode, exp, value_mode, Use bit-field techniques or SUBREG to store in it. */ if (mode == VOIDmode - || (mode != BLKmode && ! direct_store[(int) mode]) + || (mode != BLKmode && ! direct_store[(int) mode] + && GET_MODE_CLASS (mode) != MODE_COMPLEX_INT + && GET_MODE_CLASS (mode) != MODE_COMPLEX_FLOAT) || GET_CODE (target) == REG || GET_CODE (target) == SUBREG /* If the field isn't aligned enough to store as an ordinary memref,