mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 17:09:07 +02:00
* properly mangle interface wrapper names to avoid duplicate label errors, resolves #38385
git-svn-id: trunk@48411 -
This commit is contained in:
parent
0b76059b37
commit
0ab4515e58
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -18644,6 +18644,7 @@ tests/webtbs/tw3833.pp svneol=native#text/plain
|
|||||||
tests/webtbs/tw38337.pp svneol=native#text/plain
|
tests/webtbs/tw38337.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw38339.pp svneol=native#text/plain
|
tests/webtbs/tw38339.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw38351.pp -text svneol=native#text/pascal
|
tests/webtbs/tw38351.pp -text svneol=native#text/pascal
|
||||||
|
tests/webtbs/tw38385.pp svneol=native#text/pascal
|
||||||
tests/webtbs/tw38390.pp svneol=native#text/pascal
|
tests/webtbs/tw38390.pp svneol=native#text/pascal
|
||||||
tests/webtbs/tw3840.pp svneol=native#text/plain
|
tests/webtbs/tw3840.pp svneol=native#text/plain
|
||||||
tests/webtbs/tw3841.pp svneol=native#text/plain
|
tests/webtbs/tw3841.pp svneol=native#text/plain
|
||||||
@ -19181,6 +19182,9 @@ tests/webtbs/uw35918b.pp svneol=native#text/pascal
|
|||||||
tests/webtbs/uw35918c.pp svneol=native#text/pascal
|
tests/webtbs/uw35918c.pp svneol=native#text/pascal
|
||||||
tests/webtbs/uw36544.pp svneol=native#text/pascal
|
tests/webtbs/uw36544.pp svneol=native#text/pascal
|
||||||
tests/webtbs/uw38069.pp svneol=native#text/pascal
|
tests/webtbs/uw38069.pp svneol=native#text/pascal
|
||||||
|
tests/webtbs/uw38385a.pp svneol=native#text/pascal
|
||||||
|
tests/webtbs/uw38385b.pp svneol=native#text/pascal
|
||||||
|
tests/webtbs/uw38385c.pp svneol=native#text/pascal
|
||||||
tests/webtbs/uw3968.pp svneol=native#text/plain
|
tests/webtbs/uw3968.pp svneol=native#text/plain
|
||||||
tests/webtbs/uw4056.pp svneol=native#text/plain
|
tests/webtbs/uw4056.pp svneol=native#text/plain
|
||||||
tests/webtbs/uw4140.pp svneol=native#text/plain
|
tests/webtbs/uw4140.pp svneol=native#text/plain
|
||||||
|
@ -708,7 +708,7 @@ implementation
|
|||||||
while realintfdef.is_unique_objpasdef do
|
while realintfdef.is_unique_objpasdef do
|
||||||
realintfdef:=realintfdef.childof;
|
realintfdef:=realintfdef.childof;
|
||||||
|
|
||||||
tmpstr:=_class.objname^+'_$_'+realintfdef.objname^+'_$_'+tostr(i)+'_$_'+pd.mangledname;
|
tmpstr:=_class.objname^+'_$_'+make_mangledname('',realintfdef.owner,'')+'_$$_'+realintfdef.objname^+'_$_'+tostr(i)+'_$_'+pd.mangledname;
|
||||||
if length(tmpstr)>100 then
|
if length(tmpstr)>100 then
|
||||||
begin
|
begin
|
||||||
crc:=0;
|
crc:=0;
|
||||||
|
41
tests/webtbs/tw38385.pp
Normal file
41
tests/webtbs/tw38385.pp
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ %norun }
|
||||||
|
Unit tw38385;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
Interface
|
||||||
|
|
||||||
|
Uses
|
||||||
|
uw38385a, uw38385b, uw38385c;
|
||||||
|
|
||||||
|
Type
|
||||||
|
|
||||||
|
{ TFoo }
|
||||||
|
|
||||||
|
TFoo = Class(TInterfacedObject, uw38385a.IInterface1, uw38385b.IInterface1, uw38385c.IInterface1)
|
||||||
|
Procedure p1();
|
||||||
|
Procedure p2();
|
||||||
|
Procedure p3();
|
||||||
|
End;
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
|
||||||
|
{ TFoo }
|
||||||
|
|
||||||
|
Procedure TFoo.p1();
|
||||||
|
Begin
|
||||||
|
WriteLn('p1');
|
||||||
|
End;
|
||||||
|
|
||||||
|
Procedure TFoo.p2();
|
||||||
|
Begin
|
||||||
|
WriteLn('p2');
|
||||||
|
End;
|
||||||
|
|
||||||
|
Procedure TFoo.p3();
|
||||||
|
Begin
|
||||||
|
WriteLn('p3');
|
||||||
|
End;
|
||||||
|
|
||||||
|
End.
|
||||||
|
|
17
tests/webtbs/uw38385a.pp
Normal file
17
tests/webtbs/uw38385a.pp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Unit uw38385a;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
Interface
|
||||||
|
|
||||||
|
Type
|
||||||
|
IInterface1 = Interface(IInterface)
|
||||||
|
Procedure p1();
|
||||||
|
End;
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End.
|
||||||
|
|
18
tests/webtbs/uw38385b.pp
Normal file
18
tests/webtbs/uw38385b.pp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
unit uw38385b;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
uw38385a;
|
||||||
|
|
||||||
|
type
|
||||||
|
IInterface1 = Interface(uw38385a.IInterface1)
|
||||||
|
Procedure p2();
|
||||||
|
End;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
18
tests/webtbs/uw38385c.pp
Normal file
18
tests/webtbs/uw38385c.pp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
Unit uw38385c;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
Interface
|
||||||
|
|
||||||
|
Uses
|
||||||
|
uw38385a;
|
||||||
|
|
||||||
|
Type
|
||||||
|
IInterface1 = Interface(uw38385a.IInterface1)
|
||||||
|
Procedure p3();
|
||||||
|
End;
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
|
||||||
|
End.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user