Commit 7a0877c0 by Eric Botcazou Committed by Eric Botcazou

trans.c (Call_to_gnu): Use the unpadded type when putting back an intermediate…

trans.c (Call_to_gnu): Use the unpadded type when putting back an intermediate conversion the type of...

	* gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
	putting back an intermediate conversion the type of the actuals.

From-SVN: r271647
parent 73cd514a
2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
putting back an intermediate conversion the type of the actuals.
2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
count to the unsigned version of its base type before proceeding.
......
......@@ -5355,7 +5355,7 @@ Call_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_target,
since the parent is a procedure call, so put it back here. Note that
we might have a dummy type here if the actual is the dereference of a
pointer to it, but that's OK if the formal is passed by reference. */
tree gnu_actual_type = gnat_to_gnu_type (Etype (gnat_actual));
tree gnu_actual_type = get_unpadded_type (Etype (gnat_actual));
if (TYPE_IS_DUMMY_P (gnu_actual_type))
gcc_assert (is_true_formal_parm && DECL_BY_REF_P (gnu_formal));
else if (suppress_type_conversion
......
2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/unchecked_convert13.adb: New test.
2019-05-27 Richard Biener <rguenther@suse.de>
PR testsuite/90615
......
-- { dg-do compile }
with Ada.Unchecked_Conversion;
procedure Unchecked_Convert13 is
type B16_T is mod 2 ** 16;
for B16_T'Size use 16;
for B16_T'Alignment use 1;
type Rec_T is record
A : Short_Integer;
end record;
for Rec_T use record
A at 0 range 0 .. 15;
end record;
for Rec_T'Size use 16;
Rec : constant Rec_T := (A => 0);
function Rec_To_B16 is new Ada.Unchecked_Conversion (Rec_T, B16_T);
procedure Nested (B16 : B16_T) is
begin
null;
end;
begin
Nested (Rec_To_B16 (Rec));
end;
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