mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 07:59:34 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
{ Source provided for Free Pascal Bug Report 3360 }
 | 
						|
{ Submitted by "Thomas Schatzl" on  2004-10-17 }
 | 
						|
{ e-mail:  }
 | 
						|
{$R-}
 | 
						|
{$Q-}
 | 
						|
 | 
						|
type
 | 
						|
        tdef = record
 | 
						|
          f1 : longint;
 | 
						|
          f2 : longint;
 | 
						|
        end;
 | 
						|
 | 
						|
        fileof = file of byte;
 | 
						|
 | 
						|
        enum = (a,b,c,d=10);
 | 
						|
 | 
						|
        tset1 = set of enum;
 | 
						|
        tset2 = set of byte;
 | 
						|
 | 
						|
        ttdef = type tdef;
 | 
						|
        tfile = type file;
 | 
						|
        ttext = type text;
 | 
						|
        tfileof = type fileof;
 | 
						|
        tvariant = type variant;
 | 
						|
        //!! tinterfacedobject2 = type tinterfacedobject;
 | 
						|
        tenum = type enum;
 | 
						|
        ttset1 = type tset1;
 | 
						|
        ttset2 = type tset2;
 | 
						|
 | 
						|
var
 | 
						|
  e1 : enum;
 | 
						|
  e2 : tenum;
 | 
						|
  def1 : tdef;
 | 
						|
  def2 : ttdef;
 | 
						|
 | 
						|
begin
 | 
						|
  { enums }
 | 
						|
  e1:=a;
 | 
						|
  e2:=a;
 | 
						|
  e1:=d;
 | 
						|
  e2:=d;
 | 
						|
 | 
						|
  { sets }
 | 
						|
  if ord(e1)<>ord(e2) then
 | 
						|
    halt(1);
 | 
						|
  if sizeof(tset1)<>sizeof(ttset1) then
 | 
						|
    halt(2);
 | 
						|
  if sizeof(tset2)<>sizeof(ttset2) then
 | 
						|
    halt(3);
 | 
						|
 | 
						|
  { records }
 | 
						|
  def1.f1:=$deadbeef;
 | 
						|
  def1.f2:=$d0d0d0d0;
 | 
						|
  if sizeof(def1)<>sizeof(def2) then
 | 
						|
    halt(4);
 | 
						|
 | 
						|
  move(def1,def2,sizeof(def1));
 | 
						|
 | 
						|
  if (def1.f1<>def2.f1) or
 | 
						|
    (def1.f2<>def2.f2) then
 | 
						|
    halt(5);
 | 
						|
 | 
						|
  writeln('ok');
 | 
						|
end.
 |