fpc/tests/test/tprec12.pp
Jonas Maebe 8bc876c3fb + support for bitpacked record constants
+ several array/record bitpacking tests from gpc, most work already

git-svn-id: trunk@6633 -
2007-02-24 17:39:06 +00:00

170 lines
2.1 KiB
ObjectPascal

{ from gpc tests, original name sam9.pas }
{$ifdef fpc}
{$mode macpas}
{$endif}
program sam9;
type
e1 = (
enum000,
enum001,
enum002,
enum003,
enum004,
enum005,
enum006,
enum007,
enum008,
enum009,
enum010,
enum011,
enum012,
enum013,
enum014,
enum015,
enum016,
enum017,
enum018,
enum019,
enum020,
enum021,
enum022,
enum023,
enum024,
enum025,
enum026,
enum027,
enum028,
enum029,
enum030,
enum031,
enum032,
enum033,
enum034,
enum035,
enum036,
enum037,
enum038,
enum039,
enum040,
enum041,
enum042,
enum043,
enum044,
enum045,
enum046,
enum047,
enum048,
enum049,
enum050,
enum051,
enum052,
enum053,
enum054,
enum055,
enum056,
enum057,
enum058,
enum059,
enum060,
enum061,
enum062,
enum063,
enum064,
enum065,
enum066,
enum067,
enum068,
enum069,
enum070,
enum071,
enum072,
enum073,
enum074,
enum075,
enum076,
enum077,
enum078,
enum079,
enum080,
enum081,
enum082,
enum083,
enum084,
enum085,
enum086,
enum087,
enum088,
enum089,
enum090,
enum091,
enum092,
enum093,
enum094,
enum095,
enum096,
enum097,
enum098,
enum099,
enum100,
enum101,
enum102,
enum103,
enum104,
enum105,
enum106,
enum107,
enum108,
enum109,
enum110,
enum111,
enum112,
enum113,
enum114,
enum115,
enum116,
enum117,
enum118,
enum119,
enum120,
enum121,
enum122,
enum123,
enum124,
enum125,
enum126,
enum127,
enum128 { Remove this and it works !}
);
r1 = 0 .. 128;
t1 = packed record { has to be packed }
case integer of
1: (f1: e1);
2: (f2: r1);
end;
var
v1: t1;
procedure foo;
begin
v1.f1 := enum000;
v1.f2 := 127;
v1.f2 := 128;
end;
begin
foo;
if v1.f1 = enum128 then
writeln ( 'OK' )
else
begin
writeln ( 'failed' );
halt(1)
end
end.