@@ -0,0 +1,31 @@
+{ %fail }
+
+type
+ p_int = procedure (var i : smallint);
+procedure testl(var i : longint);
+begin
+ i:=$ffff;
+end;
+var
+ p : p_int;
+ r : packed record
+{$ifdef ENDIAN_BIG}
+ j,i : smallint;
+{$else}
+ i,j : smallint;
+{$endif}
+ end;
+ p:=@testl;
+ r.j:=5;
+ p(r.i);
+ if r.j<>5 then
+ begin
+ writeln('Wrong code overwrites j');
+ halt(1);
+end.