fpc/tests/tbs/tb0528.pp
2012-06-27 18:20:52 +00:00

34 lines
980 B
ObjectPascal

{%CPU=x86_64,powerpc64}
{%skiptarget=darwin,aix}
{ darwin limits statically declared data structures to 32 bit for efficiency reasons }
{ the aix assembler cannot deal with the way we declare these arrays in assembler code }
program tb0528;
{This program tests if huge arrays work on 64-bit systems. I got the idea
testing this because today I had a Fortran program that didn't work. After
inspection it appeared the mad scientist was using arrays > 2GB.
So, I did a test how well FPC handled such code. Disappointment, FPC
did generate wrong code.
Note that this test does not use huge amounts of memory, as the operating
system should allocate a page on write.
does not get allocated.}
type huge_array=array[0..$ffffffff] of word;
var a,b,c:huge_array;
begin
a[$ffffffff]:=1;
b[$ffffffff]:=2;
c[$ffffffff]:=3;
if (a[$ffffffff]+b[$ffffffff]+c[$ffffffff])<>6 then
halt(1);
writeln(a[$ffffffff]);
writeln(b[$ffffffff]);
writeln(c[$ffffffff]);
end.