* expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion.
From-SVN: r257519
This commit is contained in:
parent
cc17f33826
commit
8ed6f54304
@ -1,3 +1,7 @@
|
||||
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. */
|
||||
|
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
15
gcc/testsuite/gnat.dg/sso8.adb
Normal file
15
gcc/testsuite/gnat.dg/sso8.adb
Normal file
@ -0,0 +1,15 @@
|
||||
-- { 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;
|
32
gcc/testsuite/gnat.dg/sso8_pkg.ads
Normal file
32
gcc/testsuite/gnat.dg/sso8_pkg.ads
Normal file
@ -0,0 +1,32 @@
|
||||
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;
|
Loading…
Reference in New Issue
Block a user