mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 06:08:16 +02:00
* 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 -
This commit is contained in:
parent
f4c2ba9eb6
commit
ad1621df3f
@ -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;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user