> 
> 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

Reply via email to