digitalmars.D.bugs - inline bug of final class (dmd 0.131 win32)
- zwang (36/36) Sep 09 2005 D:\d\tctr>type main.d
- =?ISO-8859-1?Q?Thomas_K=FChne?= (13/56) Sep 09 2005 -----BEGIN PGP SIGNED MESSAGE-----
D:\d\tctr>type main.d
import std.stdio;
int r = 1;
class B{
void f(){
writefln("B.f");
}
}
final class D : B{
void f(){
--r;
writefln("D.f");
super.f();
}
}
int main(){
(new D).f();
if(r)
writefln("bug!");
return r;
}
D:\d\tctr>dmd main.d
C:\dmd\bin\..\..\dm\bin\link.exe main,,,user32+kernel32/noi;
D:\d\tctr>main
D.f
B.f
D:\d\tctr>dmd main.d -inline
C:\dmd\bin\..\..\dm\bin\link.exe main,,,user32+kernel32/noi;
D:\d\tctr>main
D.f
D.f
B.f
bug!
D:\d\tctr>
Remarks: The bug disappears when the keyword "final" is removed
from the source.
Sep 09 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
zwang schrieb:
D:\d\tctr>type main.d
import std.stdio;
int r = 1;
class B{
void f(){
writefln("B.f");
}
}
final class D : B{
void f(){
--r;
writefln("D.f");
super.f();
}
}
int main(){
(new D).f();
if(r)
writefln("bug!");
return r;
}
D:\d\tctr>dmd main.d
C:\dmd\bin\..\..\dm\bin\link.exe main,,,user32+kernel32/noi;
D:\d\tctr>main
D.f
B.f
D:\d\tctr>dmd main.d -inline
C:\dmd\bin\..\..\dm\bin\link.exe main,,,user32+kernel32/noi;
D:\d\tctr>main
D.f
D.f
B.f
bug!
D:\d\tctr>
Remarks: The bug disappears when the keyword "final" is removed
from the source.
Added to DStress as
http://dstress.kuehne.cn/run/i/inline_14_A.d
http://dstress.kuehne.cn/run/i/inline_14_B.d
http://dstress.kuehne.cn/run/i/inline_14_C.d
Thomas
-----BEGIN PGP SIGNATURE-----
iD8DBQFDInnW3w+/yD4P9tIRApWKAJ9CR26BliLJ2IsUBr4Tc0uSK8DN1gCeJqzy
TOCuZlJqGh76/Xsfk3mkZLI=
=Z+eN
-----END PGP SIGNATURE-----
Sep 09 2005








=?ISO-8859-1?Q?Thomas_K=FChne?= <thomas-dloop kuehne.cn>