expr.c (expand_expr, [...]): Use bitfield case if result is a RECORD_TYPE.

* expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
	result is a RECORD_TYPE.

From-SVN: r32317
This commit is contained in:
Richard Kenner 2000-03-03 20:40:54 +00:00 committed by Richard Kenner
parent 105d228299
commit dd84118114
2 changed files with 16 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
result is a RECORD_TYPE.
2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
* config/mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.

View File

@ -6756,7 +6756,17 @@ expand_expr (exp, target, tmode, modifier)
&& SLOW_UNALIGNED_ACCESS (mode1, alignment)
&& ((TYPE_ALIGN (TREE_TYPE (tem))
< (unsigned int) GET_MODE_ALIGNMENT (mode))
|| (bitpos % GET_MODE_ALIGNMENT (mode) != 0)))))
|| (bitpos % GET_MODE_ALIGNMENT (mode) != 0)))
/* If the type and the field are a constant size and the
size of the type isn't the same size as the bitfield,
we must use bitfield operations. */
|| ((bitsize >= 0
&& (TREE_CODE (TYPE_SIZE (TREE_TYPE (exp)))
== INTEGER_CST)
&& ((TREE_INT_CST_HIGH (TYPE_SIZE (TREE_TYPE (exp)))
!= 0)
|| (TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (exp)))
!= bitsize))))))
|| (modifier != EXPAND_CONST_ADDRESS
&& modifier != EXPAND_INITIALIZER
&& mode == BLKmode