|
@@ -0,0 +1,61 @@
|
|
|
+{ Source provided for Free Pascal Bug Report 3360 }
|
|
|
+{ Submitted by "Thomas Schatzl" on 2004-10-17 }
|
|
|
+{ e-mail: }
|
|
|
+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.
|