|
@@ -188,7 +188,7 @@ implementation
|
|
|
defutil,defcmp,
|
|
|
cpuinfo,
|
|
|
htypechk,pass_1,procinfo,paramgr,
|
|
|
- ncon,ninl,ncnv,nmem,ncal,nutils,
|
|
|
+ ncon,nflw,ninl,ncnv,nmem,ncal,nutils,
|
|
|
cgbase
|
|
|
;
|
|
|
|
|
@@ -273,12 +273,28 @@ implementation
|
|
|
function tloadnode.dogetcopy : tnode;
|
|
|
var
|
|
|
n : tloadnode;
|
|
|
+ orglabel,
|
|
|
+ labelcopy : tlabelnode;
|
|
|
begin
|
|
|
n:=tloadnode(inherited dogetcopy);
|
|
|
n.symtable:=symtable;
|
|
|
n.symtableentry:=symtableentry;
|
|
|
n.fprocdef:=fprocdef;
|
|
|
n.loadnodeflags:=loadnodeflags;
|
|
|
+ if symtableentry.typ=labelsym then
|
|
|
+ begin
|
|
|
+ { see the comments for the tgotonode.labelsym field }
|
|
|
+ orglabel:=tlabelnode(tlabelsym(symtableentry).code);
|
|
|
+ labelcopy:=tlabelnode(orglabel.dogetcopy);
|
|
|
+ if not assigned(labelcopy.labsym) then
|
|
|
+ begin
|
|
|
+ if not assigned(orglabel.labsym) then
|
|
|
+ internalerror(2019091301);
|
|
|
+ labelcopy.labsym:=clabelsym.create('$copiedlabelfrom$'+orglabel.labsym.RealName);
|
|
|
+ labelcopy.labsym.code:=labelcopy;
|
|
|
+ end;
|
|
|
+ n.symtableentry:=labelcopy.labsym;
|
|
|
+ end;
|
|
|
result:=n;
|
|
|
end;
|
|
|
|