* fix for Mantis #38083: ensure that the sp_generic_dummy flag is set correctly on the new procsym when replacing a dummy sym

+ added test

git-svn-id: trunk@47424 -
This commit is contained in:
svenbarth 2020-11-15 16:27:26 +00:00
parent 98eab07abd
commit 3d2ee097b5
3 changed files with 25 additions and 0 deletions

1
.gitattributes vendored
View File

@ -18531,6 +18531,7 @@ tests/webtbs/tw38051.pp svneol=native#text/pascal
tests/webtbs/tw38054.pp svneol=native#text/plain tests/webtbs/tw38054.pp svneol=native#text/plain
tests/webtbs/tw38069.pp svneol=native#text/pascal tests/webtbs/tw38069.pp svneol=native#text/pascal
tests/webtbs/tw38074.pp svneol=native#text/pascal tests/webtbs/tw38074.pp svneol=native#text/pascal
tests/webtbs/tw38083.pp svneol=native#text/pascal
tests/webtbs/tw3814.pp svneol=native#text/plain tests/webtbs/tw3814.pp svneol=native#text/plain
tests/webtbs/tw3827.pp svneol=native#text/plain tests/webtbs/tw3827.pp svneol=native#text/plain
tests/webtbs/tw3829.pp svneol=native#text/plain tests/webtbs/tw3829.pp svneol=native#text/plain

View File

@ -535,6 +535,7 @@ implementation
procstartfilepos : tfileposinfo; procstartfilepos : tfileposinfo;
i, i,
index : longint; index : longint;
addgendummy,
hadspecialize, hadspecialize,
firstpart, firstpart,
found, found,
@ -867,6 +868,7 @@ implementation
srsym:=nil; srsym:=nil;
genericparams:=nil; genericparams:=nil;
hadspecialize:=false; hadspecialize:=false;
addgendummy:=false;
if not assigned(genericdef) then if not assigned(genericdef) then
begin begin
@ -1071,6 +1073,7 @@ implementation
as if nothing happened } as if nothing happened }
hidesym(srsym); hidesym(srsym);
searchagain:=true; searchagain:=true;
addgendummy:=true;
end end
else else
begin begin
@ -1106,6 +1109,8 @@ implementation
aprocsym:=cprocsym.create('$'+lower(sp)) aprocsym:=cprocsym.create('$'+lower(sp))
else else
aprocsym:=cprocsym.create(orgsp); aprocsym:=cprocsym.create(orgsp);
if addgendummy then
include(aprocsym.symoptions,sp_generic_dummy);
symtablestack.top.insert(aprocsym); symtablestack.top.insert(aprocsym);
end; end;
end; end;

19
tests/webtbs/tw38083.pp Normal file
View File

@ -0,0 +1,19 @@
{ %NORUN }
program tw38083;
{$MODE Delphi}
procedure Test<T>(A: T; B: Boolean); overload;
begin
end;
procedure Test(A: String); overload;
begin
Test<String>(A, True);
end;
begin
end.