Ver Fonte

* Fix for RTTI alignment from Paul

git-svn-id: trunk@14564 -
pierre há 15 anos atrás
pai
commit
9896f48317
1 ficheiros alterados com 6 adições e 0 exclusões
  1. 6 0
      compiler/ncgrtti.pas

+ 6 - 0
compiler/ncgrtti.pas

@@ -733,6 +733,9 @@ implementation
                  { write name of result type }
                  write_rtti_name(def.returndef);
 
+                 if (tf_requires_proper_alignment in target_info.flags) then
+                   current_asmdata.asmlists[al_rtti].concat(Cai_align.Create(sizeof(TConstPtrUint)));
+
                  { write result typeinfo }
                  current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_sym(ref_rtti(def.returndef,fullrtti)))
                end;
@@ -740,6 +743,9 @@ implementation
                { write calling convention }
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(ProcCallOptionToCallConv[def.proccalloption]));
 
+               if (tf_requires_proper_alignment in target_info.flags) then
+                 current_asmdata.asmlists[al_rtti].concat(Cai_align.Create(sizeof(TConstPtrUint)));
+
                { write params typeinfo }
                for i:=0 to def.paras.count-1 do
                  if not(vo_is_hidden_para in tparavarsym(def.paras[i]).varoptions) then