Commit d6cd6e22 by Eric Botcazou Committed by Eric Botcazou

expr.c (store_field): Handle VOIDmode for calls that return values in multiple locations.

	* expr.c (store_field): Handle VOIDmode for calls that return values
	in multiple locations.

From-SVN: r212877
parent f67341b6
2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
* expr.c (store_field): Handle VOIDmode for calls that return values
in multiple locations.
2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (unspec enum): Fix typo in
......
......@@ -6581,7 +6581,7 @@ store_field (rtx target, HOST_WIDE_INT bitsize, HOST_WIDE_INT bitpos,
{
HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (exp));
rtx temp_target;
if (mode == BLKmode)
if (mode == BLKmode || mode == VOIDmode)
mode = smallest_mode_for_size (size * BITS_PER_UNIT, MODE_INT);
temp_target = gen_reg_rtx (mode);
emit_group_store (temp_target, temp, TREE_TYPE (exp), size);
......
2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/pack20.ad[sb]: New test.
* gnat.dg/pack20_pkg.ads: New helper.
2014-07-20 Ian Lance Taylor <iant@google.com>
* go.test/go-test.exp (go-gc-tests): Support multiple files in one
......
package body Pack20 is
procedure Proc (A : Rec) is
Local : Rec := A;
begin
Modify (Local.Fixed);
end;
end Pack20;
-- { dg-do compile }
with Pack20_Pkg; use Pack20_Pkg;
package Pack20 is
type Rec is record
Simple_Type : Integer;
Fixed : String_Ptr;
end record;
pragma Pack (Rec);
procedure Proc (A : Rec);
end Pack20;
package Pack20_Pkg is
type String_Ptr is access all String;
procedure Modify (Fixed : in out String_Ptr);
end Pack20_Pkg;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment