瀏覽代碼

* Revert part of r22548, correct fix for the issue is provided by r23188.
Only referencing data labels from code should change "GOT is needed" property. Writing data labels or referencing them from data should have no effect on it.

git-svn-id: trunk@23363 -

sergei 12 年之前
父節點
當前提交
ad1621df3f
共有 1 個文件被更改,包括 1 次插入19 次删除
  1. 1 19
      compiler/nobj.pas

+ 1 - 19
compiler/nobj.pas

@@ -112,7 +112,7 @@ implementation
     uses
        SysUtils,
        globals,verbose,systems,
-       node,procinfo,
+       node,
        symbase,symtable,symconst,symtype,defcmp,
        cgbase,parabase,paramgr,
        dbgbase,
@@ -1049,9 +1049,6 @@ implementation
         len : byte;
       begin
          current_asmdata.getdatalabel(p^.nl);
-         if (cs_create_pic in current_settings.moduleswitches) and
-            assigned(current_procinfo) then
-           include(current_procinfo.flags,pi_needs_got);
          if assigned(p^.l) then
            writenames(list,p^.l);
          list.concat(cai_align.create(const_align(sizeof(pint))));
@@ -1072,9 +1069,6 @@ implementation
          if assigned(p^.l) then
            writestrentry(list,p^.l);
 
-         if (cs_create_pic in current_settings.moduleswitches) and
-            assigned(current_procinfo) then
-           include(current_procinfo.flags,pi_needs_got);
          { write name label }
          list.concat(cai_align.create(const_align(sizeof(pint))));
          list.concat(Tai_const.Create_sym(p^.nl));
@@ -1099,9 +1093,6 @@ implementation
          if assigned(root) then
            writenames(list,root);
 
-         if (cs_create_pic in current_settings.moduleswitches) and
-            assigned(current_procinfo) then
-           include(current_procinfo.flags,pi_needs_got);
          { now start writing of the message string table }
          current_asmdata.getlabel(result,alt_data);
          list.concat(cai_align.create(const_align(sizeof(pint))));
@@ -1122,9 +1113,6 @@ implementation
          if assigned(p^.l) then
            writeintentry(list,p^.l);
 
-         if (cs_create_pic in current_settings.moduleswitches) and
-            assigned(current_procinfo) then
-           include(current_procinfo.flags,pi_needs_got);
          { write name label }
          list.concat(cai_align.create(const_align(sizeof(longint))));
          list.concat(Tai_const.Create_32bit(p^.data.messageinf.i));
@@ -1146,9 +1134,6 @@ implementation
          { insert all message handlers into a tree, sorted by name }
          _class.symtable.SymList.ForEachCall(@insertmsgint,@count);
 
-         if (cs_create_pic in current_settings.moduleswitches) and
-            assigned(current_procinfo) then
-           include(current_procinfo.flags,pi_needs_got);
          { now start writing of the message string table }
          current_asmdata.getlabel(r,alt_data);
          list.concat(cai_align.create(const_align(sizeof(pint))));
@@ -1410,9 +1395,6 @@ implementation
     function  TVMTWriter.intf_get_vtbl_name(AImplIntf:TImplementedInterface): string;
       begin
         result:=make_mangledname('VTBL',_class.owner,_class.objname^+'_$_'+AImplIntf.IntfDef.objname^);
-         if (cs_create_pic in current_settings.moduleswitches) and
-            assigned(current_procinfo) then
-           include(current_procinfo.flags,pi_needs_got);
       end;