Kaynağa Gözat

* generate indirect symbols for interface IID and IIDSTR (fixes cycling; I wonder why that worked on Windows without problems :/ )

git-svn-id: trunk@34353 -
svenbarth 9 yıl önce
ebeveyn
işleme
37c32f4b61
1 değiştirilmiş dosya ile 2 ekleme ve 2 silme
  1. 2 2
      compiler/ncgvmt.pas

+ 2 - 2
compiler/ncgvmt.pas

@@ -924,7 +924,7 @@ implementation
           s:=make_mangledname('IID',_class.owner,_class.objname^);
           s:=make_mangledname('IID',_class.owner,_class.objname^);
           tcb:=ctai_typedconstbuilder.create([tcalo_make_dead_strippable]);
           tcb:=ctai_typedconstbuilder.create([tcalo_make_dead_strippable]);
           tcb.emit_guid_const(_class.iidguid^);
           tcb.emit_guid_const(_class.iidguid^);
-          sym:=current_asmdata.DefineAsmSymbol(s,AB_GLOBAL,AT_DATA,rec_tguid);
+          sym:=current_asmdata.DefineAsmSymbol(s,AB_GLOBAL,AT_DATA_FORCEINDIRECT,rec_tguid);
           list.concatlist(tcb.get_final_asmlist(
           list.concatlist(tcb.get_final_asmlist(
             sym,
             sym,
             rec_tguid,
             rec_tguid,
@@ -937,7 +937,7 @@ implementation
       s:=make_mangledname('IIDSTR',_class.owner,_class.objname^);
       s:=make_mangledname('IIDSTR',_class.owner,_class.objname^);
       tcb:=ctai_typedconstbuilder.create([tcalo_make_dead_strippable]);
       tcb:=ctai_typedconstbuilder.create([tcalo_make_dead_strippable]);
       def:=tcb.emit_shortstring_const(_class.iidstr^);
       def:=tcb.emit_shortstring_const(_class.iidstr^);
-      sym:=current_asmdata.DefineAsmSymbol(s,AB_GLOBAL,AT_DATA,def);
+      sym:=current_asmdata.DefineAsmSymbol(s,AB_GLOBAL,AT_DATA_FORCEINDIRECT,def);
       list.concatlist(tcb.get_final_asmlist(
       list.concatlist(tcb.get_final_asmlist(
         sym,
         sym,
         def,
         def,