* Fixed RTTI name mangling for nested types, resolves #26069.

git-svn-id: trunk@28958 -
This commit is contained in:
sergei 2014-11-01 14:54:16 +00:00
parent dc4a2a59f7
commit 07ab3fbec4
3 changed files with 25 additions and 1 deletions

1
.gitattributes vendored
View File

@ -14073,6 +14073,7 @@ tests/webtbs/tw2595.pp svneol=native#text/plain
tests/webtbs/tw25956.pp svneol=native#text/pascal
tests/webtbs/tw25959.pp svneol=native#text/pascal
tests/webtbs/tw2602.pp svneol=native#text/plain
tests/webtbs/tw26069.pp svneol=native#text/plain
tests/webtbs/tw2607.pp svneol=native#text/plain
tests/webtbs/tw26123.pp svneol=native#text/pascal
tests/webtbs/tw26162.pp svneol=native#text/pascal

View File

@ -1777,7 +1777,7 @@ implementation
end;
if assigned(typesym) and
(owner.symtabletype in [staticsymtable,globalsymtable]) then
result:=make_mangledname(prefix,owner,typesym.name)
result:=make_mangledname(prefix,typesym.owner,typesym.name)
else
result:=make_mangledname(prefix,findunitsymtable(owner),'DEF'+tostr(DefId))
end;

23
tests/webtbs/tw26069.pp Normal file
View File

@ -0,0 +1,23 @@
{ %norun }
Unit tw26069;
{$mode delphi}
Interface
Type
TClass1 = Class
Type
TReason = (rnOne, rnTwo);
End;
TClass2 = Class
Type
TReason = (rn1, rn2);
End;
Implementation
End.