mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 14:29:34 +02:00
48 lines
964 B
ObjectPascal
48 lines
964 B
ObjectPascal
{ %fail }
|
|
|
|
{ currently fails under FPC, because parameters to read(ln) have to be }
|
|
{ var parameters, and you cannot pass bitpacked record fields and array }
|
|
{ elements as var parameters }
|
|
|
|
{ from gpc tests, original name: bitfields.pas }
|
|
|
|
{$ifdef fpc}
|
|
{$bitpacking on}
|
|
{$endif}
|
|
|
|
Program BitFields;
|
|
|
|
Var
|
|
Foo: packed record
|
|
b: 0..63;
|
|
a: 0..1;
|
|
end { Foo };
|
|
|
|
r: packed array [ 40..47 ] of 0..1;
|
|
|
|
F: Text;
|
|
|
|
begin
|
|
assign(f,'bitfields.txt');
|
|
rewrite ( F );
|
|
writeln ( F, '42' );
|
|
writeln ( F, '0' );
|
|
writeln ( F, '1' );
|
|
with Foo do
|
|
begin
|
|
reset ( F );
|
|
readln ( F, b );
|
|
readln ( F, a );
|
|
readln ( F, r [ 42 ] );
|
|
close ( F );
|
|
erase ( F );
|
|
if ( b = 42 ) and ( a = 0 ) and ( r [ 42 ] = 1 ) then
|
|
writeln ( 'OK' )
|
|
else
|
|
begin
|
|
writeln ( 'failed: ', b, ' ', a, ' ', r [ 42 ] );
|
|
halt(1);
|
|
end;
|
|
end { with };
|
|
end.
|