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
This commit is contained in:
parent
f67341b624
commit
d6cd6e226f
@ -1,3 +1,8 @@
|
||||
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);
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
9
gcc/testsuite/gnat.dg/pack20.adb
Normal file
9
gcc/testsuite/gnat.dg/pack20.adb
Normal file
@ -0,0 +1,9 @@
|
||||
package body Pack20 is
|
||||
|
||||
procedure Proc (A : Rec) is
|
||||
Local : Rec := A;
|
||||
begin
|
||||
Modify (Local.Fixed);
|
||||
end;
|
||||
|
||||
end Pack20;
|
15
gcc/testsuite/gnat.dg/pack20.ads
Normal file
15
gcc/testsuite/gnat.dg/pack20.ads
Normal file
@ -0,0 +1,15 @@
|
||||
-- { 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;
|
7
gcc/testsuite/gnat.dg/pack20_pkg.ads
Normal file
7
gcc/testsuite/gnat.dg/pack20_pkg.ads
Normal file
@ -0,0 +1,7 @@
|
||||
package Pack20_Pkg is
|
||||
|
||||
type String_Ptr is access all String;
|
||||
|
||||
procedure Modify (Fixed : in out String_Ptr);
|
||||
|
||||
end Pack20_Pkg;
|
Loading…
Reference in New Issue
Block a user