error 200609071 with bitpacked record in i386/O3
Original Reporter info from Mantis: sethdgrover@gmail.com
-
Reporter name: Seth Grover
Original Reporter info from Mantis: sethdgrover@gmail.com
- Reporter name: Seth Grover
Description:
This test program compiles fine in x86_64 with O1 and O3 optimizations, and it compiles fine in i386 with O1 optimizations, but with O3 compilation fails with Error: Internal error 200609071. It worked fine in FPC 2.6.4, but it breaks in 3.0.
==================================================
program Project1;
uses
SysUtils;
type
TPackedIdLevel1 = 0..255;
TPackedIdLevel2 = 0..65535;
TPackedIdLevel3 = 0..65535;
TPackedIdLevel4 = 0..65535;
TPackedIdLevel5 = 0..255;
TPackedId = bitpacked record
clusterId : TPackedIdLevel5;
agentId : TPackedIdLevel4;
dataSourceId : TPackedIdLevel3;
deviceId : TPackedIdLevel2;
esmId : TPackedIdLevel1;
end;
function PackedIdToStr(const ipsid : qword) : string;
begin
result := IntToStr(TPackedId(ipsid).esmId) + '-' +
IntToStr(TPackedId(ipsid).deviceId) + '-' +
IntToStr(TPackedId(ipsid).dataSourceId) + '-' +
IntToStr(TPackedId(ipsid).agentId) + '-' +
IntToStr(TPackedId(ipsid).clusterId);
end;
begin
writeln(PackedIdToStr(0));
end.
==================================================
Steps to reproduce:
attempt to compile the code I provided
Mantis conversion info:
- Mantis ID: 29669
- OS: Linux
- OS Build: Debian 8
- Build: 3.0 built from svn rev 33098
- Platform: i386
- Version: 3.0.0
- Fixed in version: 3.1.1
- Fixed in revision: 33180 (#096e1c45)