{ Old file: tbs0046.pp }
{  problems with sets with values over 128 due to sign extension (already fixed ) but also for SET_IN_BYTE }

program test;

{$R-}

{$ifdef fpc}
{$ifdef go32v2}
uses
   dpmiexcp;
{$endif}
{$endif}

type byteset = set of byte;
     bl = record i,j : longint;
          end;
const set1 : byteset = [1,50,220];
      set2 : byteset = [55];
var i : longint;
    b : bl;

    function bi : longint;

    begin
       bi:=b.i;
    end;

begin
set1:=set1+set2;
writeln('set 1 = [1,50,55,220]');
i:=50;
if i in set1 then
  writeln(i,' is in set1');
i:=220;
if i in set1 then
  writeln(i,' is in set1');
i:=$100+220;
if i in set1 then
  writeln(i,' is in set1');
i:=-35;
if i in set1 then
  writeln(i,' is in set1');
b.i:=50;
i:=$100+220;
if i in [50,220] then
  writeln(i,' is in [50,220]');
if Bi in [50,220] then
  writeln(b.i,' is in [50,220]');
b.i:=220;
if bi in [50,220] then
  writeln(b.i,' is in [50,220]');
B.i:=-36;
if bi in [50,220] then
  writeln(B.i,' is in [50,220]');
end.
