Browse Source

* fixed emitting of RELOC_SEG and RELOC_SEGREL relocations within the same
section in the omf internal obj writer

git-svn-id: trunk@30809 -

nickysn 10 years ago
parent
commit
ced1368221
1 changed files with 2 additions and 1 deletions
  1. 2 1
      compiler/ogomf.pas

+ 2 - 1
compiler/ogomf.pas

@@ -484,7 +484,8 @@ implementation
               begin
               begin
                 objreloc:=TOmfRelocation.CreateSection(CurrObjSec.Size,p.objsection,Reloctype);
                 objreloc:=TOmfRelocation.CreateSection(CurrObjSec.Size,p.objsection,Reloctype);
                 CurrObjSec.ObjRelocations.Add(objreloc);
                 CurrObjSec.ObjRelocations.Add(objreloc);
-                inc(data,symaddr);
+                if not (Reloctype in [RELOC_SEG,RELOC_SEGREL]) then
+                  inc(data,symaddr);
               end;
               end;
           end
           end
         else if Reloctype in [RELOC_DGROUP,RELOC_DGROUPREL] then
         else if Reloctype in [RELOC_DGROUP,RELOC_DGROUPREL] then