|
@@ -0,0 +1,34 @@
|
|
|
|
+{ Source provided for Free Pascal Bug Report 3185 }
|
|
|
|
+{ Submitted by "Martin Schreiber" on 2004-06-25 }
|
|
|
|
+{ e-mail: }
|
|
|
|
+program project1;
|
|
|
|
+
|
|
|
|
+{$mode objfpc}{$H+}
|
|
|
|
+
|
|
|
|
+uses
|
|
|
|
+ Classes;
|
|
|
|
+type
|
|
|
|
+ enum1ty = (a1,b1,c1,d1);
|
|
|
|
+ set1ty = set of enum1ty;
|
|
|
|
+ enum2ty = (a2=ord(a1),b2=ord(b1),c2=ord(c1),d2=ord(d1),e2);
|
|
|
|
+ set2ty = set of enum2ty;
|
|
|
|
+
|
|
|
|
+procedure proc(aset: set2ty);
|
|
|
|
+begin
|
|
|
|
+ if aset = [b2] then begin
|
|
|
|
+ writeln(longword(aset),' ok');
|
|
|
|
+ end
|
|
|
|
+ else begin
|
|
|
|
+ writeln(longword(aset),' error');
|
|
|
|
+ halt(1);
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+var
|
|
|
|
+ en1: enum1ty;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ en1:= b1;
|
|
|
|
+ proc(set2ty(longword([en1]))); //exp: 2 ok act: 1 error
|
|
|
|
+end.
|
|
|
|
+
|