Delphi XE8 [dcc32 Fatal Error] dcc32_F2084_C2359.dpr(30): F2084 Internal Error: C2359
Posted by jpluimers on 2016/10/05
Fails in Delphi XE8 with a nice [dcc32 Fatal Error] dcc32_F2084_C2359.dpr(27): F2084 Internal Error: C2359
It is fixed in Delphi 10.0 Berlin, but of course a C2359 search does not reveal that as Quality Portal is behind a wall. So for future reference the bug: [RSP-13471] Int64 for loops can generate Internal Compiler Error – Embarcadero Technologies. Thanks +Stefan Glienke for mentioning the issue.
program dcc32_F2084_C2359;
type
TNumber = Int64; // UInt64; // fails too; other numeric types do not fail. Fails in a unit as well.
TNumbers = TArray;
TNumberRange = record
strict private
function GetLowerBound: TNumber;
public
function Numbers: TNumbers;
property LowerBound: TNumber read GetLowerBound;
end;
{ TNumberRange }
function TNumberRange.GetLowerBound: TNumber;
begin
Result := Default(TNumber);
end;
function TNumberRange.Numbers: TNumbers;
var
lValue: TNumber;
begin
for lValue := LowerBound to LowerBound do
;
end;
begin
end.
–jeroen
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| program dcc32_F2084_C2359; | |
| type | |
| TNumber = Int64; // UInt64; // fails too; other numeric types do not fail. Fails in a unit as well. | |
| TNumbers = TArray<TNumber>; | |
| TNumberRange = record | |
| strict private | |
| function GetLowerBound: TNumber; | |
| public | |
| function Numbers: TNumbers; | |
| property LowerBound: TNumber read GetLowerBound; | |
| end; | |
| { TNumberRange } | |
| function TNumberRange.GetLowerBound: TNumber; | |
| begin | |
| Result := Default(TNumber); | |
| end; | |
| function TNumberRange.Numbers: TNumbers; | |
| var | |
| lValue: TNumber; | |
| begin | |
| for lValue := LowerBound to LowerBound do | |
| ; | |
| end; | |
| begin | |
| end. |






jpluimers said
Reproduction: https://bitbucket.org/jeroenp/besharp.net/commits/b8279e6c528aeb5582e3c6b5e3fc66f78396616c