Browse Source

Fix for Mantis #30410.

* ncgrtti.pas, TRTTIWriter.ref_rtti: don't require the indirect symbol as an external assembler symbol, but the direct one

git-svn-id: trunk@34221 -
svenbarth 9 years ago
parent
commit
50865158a4
1 changed files with 5 additions and 2 deletions
  1. 5 2
      compiler/ncgrtti.pas

+ 5 - 2
compiler/ncgrtti.pas

@@ -1522,13 +1522,16 @@ implementation
 
 
 
 
     function TRTTIWriter.ref_rtti(def:tdef;rt:trttitype):tasmsymbol;
     function TRTTIWriter.ref_rtti(def:tdef;rt:trttitype):tasmsymbol;
+      var
+        s : TSymStr;
       begin
       begin
-        result:=current_asmdata.RefAsmSymbol(def.rtti_mangledname(rt),AT_DATA,true);
+        s:=def.rtti_mangledname(rt);
+        result:=current_asmdata.RefAsmSymbol(s,AT_DATA,true);
         if (cs_create_pic in current_settings.moduleswitches) and
         if (cs_create_pic in current_settings.moduleswitches) and
            assigned(current_procinfo) then
            assigned(current_procinfo) then
           include(current_procinfo.flags,pi_needs_got);
           include(current_procinfo.flags,pi_needs_got);
         if def.owner.moduleid<>current_module.moduleid then
         if def.owner.moduleid<>current_module.moduleid then
-          current_module.add_extern_asmsym(result);
+          current_module.add_extern_asmsym(s,AB_EXTERNAL,AT_DATA);
       end;
       end;