Commit 8ed6f543 by Eric Botcazou Committed by Eric Botcazou

* expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.

From-SVN: r257519
parent cc17f338
2018-02-09 Eric Botcazou <ebotcazou@adacore.com>
* expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
2018-02-09 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/84285
......
......@@ -4726,8 +4726,6 @@ optimize_bitfield_assignment_op (poly_uint64 pbitsize,
}
else if (!REG_P (str_rtx) && GET_CODE (str_rtx) != SUBREG)
return false;
else
gcc_assert (!reverse);
/* If the bit field covers the whole REG/MEM, store_field
will likely generate better code. */
......
2018-02-09 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/sso8.adb: New test.
* gnat.dg/sso8_pkg.ads: New helper.
2018-02-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/84278
......
-- { dg-do run }
-- { dg-options "-O" }
with Interfaces; use Interfaces;
with SSO8_Pkg; use SSO8_Pkg;
procedure SSO8 is
Data : Rec;
begin
Data.Array_Data (2) := True;
Val8 := Conv (Data);
if Val8 /= 32 then
raise Program_Error;
end if;
end;
with Interfaces;
with System;
with Unchecked_Conversion;
package SSO8_Pkg is
Val8 : Interfaces.Unsigned_8;
type Two_Bit_Int is range 0 .. 3;
for Two_Bit_Int'size use 2;
type Arr is array (1 .. 5) of Boolean;
for Arr'scalar_storage_order use System.High_Order_First;
pragma Pack (Arr);
type Rec is record
Boolean_Data : Boolean;
Array_Data : Arr;
Two_Bit_Data : Two_Bit_Int;
end record;
for Rec use record
Boolean_Data at 0 range 0 .. 0;
Array_Data at 0 range 1 .. 5;
Two_Bit_Data at 0 range 6 .. 7;
end record;
for Rec'size use 8;
for Rec'bit_order use System.High_Order_First;
for Rec'scalar_storage_order use System.High_Order_First;
function Conv is new Unchecked_Conversion (Rec, Interfaces.Unsigned_8);
end SSO8_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