|
@@ -852,7 +852,7 @@ implementation
|
|
begin
|
|
begin
|
|
if (hp.u.flags and unitflag)=unitflag then
|
|
if (hp.u.flags and unitflag)=unitflag then
|
|
begin
|
|
begin
|
|
- hlist.concat(Tai_const.Createname(make_mangledname(prefix,hp.u.globalsymtable,''),0));
|
|
|
|
|
|
+ hlist.concat(Tai_const.Createname(make_mangledname(prefix,hp.u.globalsymtable,'')+indirect_suffix,0));
|
|
inc(count);
|
|
inc(count);
|
|
end;
|
|
end;
|
|
hp:=tused_unit(hp.next);
|
|
hp:=tused_unit(hp.next);
|
|
@@ -860,7 +860,7 @@ implementation
|
|
{ Add items from program, if any }
|
|
{ Add items from program, if any }
|
|
if (current_module.flags and unitflag)=unitflag then
|
|
if (current_module.flags and unitflag)=unitflag then
|
|
begin
|
|
begin
|
|
- hlist.concat(Tai_const.Createname(make_mangledname(prefix,current_module.localsymtable,''),0));
|
|
|
|
|
|
+ hlist.concat(Tai_const.Createname(make_mangledname(prefix,current_module.localsymtable,'')+indirect_suffix,0));
|
|
inc(count);
|
|
inc(count);
|
|
end;
|
|
end;
|
|
{ Insert TableCount at start }
|
|
{ Insert TableCount at start }
|
|
@@ -879,6 +879,7 @@ implementation
|
|
var
|
|
var
|
|
s: string;
|
|
s: string;
|
|
item: TTCInitItem;
|
|
item: TTCInitItem;
|
|
|
|
+ labind : tasmsymbol;
|
|
begin
|
|
begin
|
|
item:=TTCInitItem(list.First);
|
|
item:=TTCInitItem(list.First);
|
|
if item=nil then
|
|
if item=nil then
|
|
@@ -902,6 +903,11 @@ implementation
|
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil));
|
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(nil));
|
|
current_asmdata.asmlists[al_globals].concat(Tai_symbol_end.Createname(s));
|
|
current_asmdata.asmlists[al_globals].concat(Tai_symbol_end.Createname(s));
|
|
current_module.flags:=current_module.flags or unitflag;
|
|
current_module.flags:=current_module.flags or unitflag;
|
|
|
|
+ { indirect symbol }
|
|
|
|
+ labind:=current_asmdata.DefineAsmSymbol(s+indirect_suffix,AB_GLOBAL,AT_DATA);
|
|
|
|
+ current_asmdata.asmlists[al_globals].concat(Tai_symbol.Create_Global(labind,0));
|
|
|
|
+ current_asmdata.asmlists[al_globals].concat(Tai_const.Createname(s,AT_DATA,0));
|
|
|
|
+ current_asmdata.asmlists[al_globals].concat(tai_symbol_end.Create(labind));
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|