From 3840db54574435a51639fafdfcce2ae4cf8e301c Mon Sep 17 00:00:00 2001 From: nickysn Date: Sun, 5 Apr 2015 23:56:23 +0000 Subject: [PATCH] * handle aitconst_farptr with a constant (nil) directly in the internal asm writer, without calling writereloc git-svn-id: trunk@30457 - --- compiler/assemble.pas | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/assemble.pas b/compiler/assemble.pas index 118a0aed00..6712714202 100644 --- a/compiler/assemble.pas +++ b/compiler/assemble.pas @@ -1647,7 +1647,13 @@ Implementation end; {$ifdef i8086} aitconst_farptr : - ObjData.writereloc(Tai_const(hp).symofs,sizeof(longint),Objdata.SymbolRef(tai_const(hp).sym),RELOC_FARPTR); + if assigned(tai_const(hp).sym) and + not assigned(tai_const(hp).endsym) then + ObjData.writereloc(Tai_const(hp).symofs,tai_const(hp).size,Objdata.SymbolRef(tai_const(hp).sym),RELOC_FARPTR) + else if relative_reloc then + internalerror(2015040601) + else + ObjData.writebytes(Tai_const(hp).value,tai_const(hp).size); {$endif i8086} {$ifdef arm} aitconst_got: