From 593794c0fdac207f92661a1fbb82aca0602e625c Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 6 Mar 2018 11:08:03 +0000 Subject: [PATCH] Add $PIC OFF directive for FPC compilation and change Data field type to int64 to avoid size errors git-svn-id: trunk@38432 - --- tests/test/tasm10a.pp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tests/test/tasm10a.pp b/tests/test/tasm10a.pp index 723eccf721..4b06cc43e9 100644 --- a/tests/test/tasm10a.pp +++ b/tests/test/tasm10a.pp @@ -1,21 +1,25 @@ { %cpu=x86_64 } +{$ifdef FPC} + {$PIC OFF} +{$endif FPC} + program asmclass; {$mode delphiunicode} {$asmmode intel} type TMyClass = class public - Data: longint; - function AsmToClass: longint; ms_abi_default; + Data: int64; + function AsmToClass: int64; ms_abi_default; end; -function TMyClass.AsmToClass: longint; ms_abi_default; +function TMyClass.AsmToClass: int64; ms_abi_default; asm mov RAX, Self.Data // Error: Can't access fields directly for parameters end; -function AsmToClassProc(Inst: TMyClass): longint; ms_abi_default; +function AsmToClassProc(Inst: TMyClass): int64; ms_abi_default; asm mov RAX, Inst.Data // Error: Can't access fields directly for parameters end; @@ -29,13 +33,14 @@ var C: TMyClass; begin C := TMyClass.Create; - c.data:=123548; - if C.AsmToClass<>123548 then + c.data:=$123456789AB; + if C.AsmToClass<>$123456789AB then halt(1); - if AsmToClassProc(C)<>123548 then + if AsmToClassProc(C)<>$123456789AB then halt(2); if AsmToClassProc2(C)<>ppointer(c)^ then halt(3); C.Free; + writeln('ok'); end.