@@ -1,7 +1,8 @@
type
tproc = procedure of object;
trec = record
- l1,l2 : ptrint;
+ l1 : codeptrint;
+ l2 : ptrint;
end;
var
pfn : tproc;
@@ -1,8 +1,12 @@
{$ifdef fpc}{$mode delphi}{$endif}
+{$ifndef fpc}
+ codepointer = pointer;
+{$endif}
tmethod = record
- code,data : pointer;
+ code : codepointer;
+ data : pointer;
@@ -1,5 +1,8 @@
{$ifdef fpc}
{$mode tp}
+{$else fpc}
+type
{$endif fpc}
function times2(x : longint) : longint;
@@ -10,7 +13,7 @@ end;
x:function(x:longint):longint;
- y:pointer absolute x;
+ y:codepointer absolute x;
z,w,v:pointer;
begin
z:=@@x;
{$mode delphi}
@@ -10,8 +13,8 @@ end;
- z,w,v:pointer;
+ z,w,v:codepointer;
x:=times2;
z:=@x;
@@ -3,7 +3,7 @@
PointerLocal = procedure(_EBP: Pointer);
-procedure proccall(p: pointer);
+procedure proccall(p: codepointer);
PointerLocal(p)(get_caller_frame(get_frame));
@@ -3,6 +3,9 @@
{$endif}
tc = class
class procedure test;
@@ -20,6 +23,6 @@ var
p:=tp(tc.test);
p2:=tc.test;
- if pointer(@p)<>tmethod(p2).code then
+ if codepointer(@p)<>tmethod(p2).code then
halt(1);
end.