> > Index: expr.c > =================================================================== > --- expr.c (revision 228604) > +++ expr.c (working copy) > @@ -6703,7 +6704,7 @@ store_field (rtx target, HOST_WIDE_INT b > emit_group_store (temp_target, temp, TREE_TYPE (exp), size); > temp = temp_target; > } > - else if (mode == BLKmode) > + else if (GET_MODE (temp) == BLKmode) > { > /* Handle calls that return BLKmode values in registers. */ > if (REG_P (temp) && TREE_CODE (exp) == CALL_EXPR)
This patch passed the testing, so if FIELD_DECL of VOIDmode referring BLKmode type is a sane thing, I guess this is a right fix. I would say that however the type of FIELD_DECL should be compatible with the type of COMPONENT_REF and that should be added to the Gimple operand testing and fixed at Ada side? Honza