On Thu, Aug 07, 2003 at 01:39:12PM +0200, Adriaan van Os wrote:
Sorry, I am systematically trying out all available compiler options, this time --setlimit ...
[G4:~/gnu/testgpc/adriaan] adriaan% cat setlimit.pas program setlimit; type intset = set of integer; bigset = set of 0..100000; begin writeln( 'SizeOf( set of integer) = ', SizeOf( intset)); writeln( 'SizeOf( bigset) = ', SizeOf( bigset)); end.
[G4:~/gnu/testgpc/adriaan] adriaan% gpc -o setlimit setlimit.pas setlimit.pas:2: warning: constructing limited integer set `-2147483648 .. -2147483393'; setlimit.pas:2: warning: use `--setlimit=NUMBER' to change the size limit at compile time. setlimit.pas:3: warning: constructing limited integer set `0 .. 255'; setlimit.pas:3: warning: use `--setlimit=NUMBER' to change the size limit at compile time.
The second warning is correct, the first a bit misleading, as it suggests construction of a very large set ...
[G4:~/gnu/testgpc/adriaan] adriaan% ./setlimit SizeOf( set of integer) = 32 SizeOf( bigset) = 32
... but both sets have regular sizes.
-2147483393 - (-2147483648) = 255 = 8 * 32 - 1, so where's the problem?
Emil