www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - DMD-0.164 regressions

reply Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

64 new regressions between 0.163 and 0.164:
PASS -> FAIL: run/c/class_26_A.d
PASS -> ERROR: run/c/class_26_A.d (-g)
PASS -> FAIL: run/c/class_26_A.d (-inline)
PASS -> FAIL: run/c/class_26_A.d (-fPIC)
PASS -> FAIL: run/c/class_26_A.d (-O)
PASS -> ERROR: run/c/class_26_A.d (-release)
PASS -> ERROR: run/c/class_26_A.d (-g -inline)
PASS -> ERROR: run/c/class_26_A.d (-g -fPIC)
PASS -> FAIL: run/c/class_26_A.d (-g -O)
PASS -> ERROR: run/c/class_26_A.d (-g -release)
PASS -> FAIL: run/c/class_26_A.d (-inline -fPIC)
PASS -> FAIL: run/c/class_26_A.d (-inline -O)
PASS -> ERROR: run/c/class_26_A.d (-inline -release)
PASS -> FAIL: run/c/class_26_A.d (-fPIC -O)
PASS -> ERROR: run/c/class_26_A.d (-fPIC -release)
PASS -> ERROR: run/c/class_26_A.d (-O -release)
PASS -> ERROR: run/c/class_26_A.d (-g -inline -fPIC)
PASS -> FAIL: run/c/class_26_A.d (-g -inline -O)
PASS -> ERROR: run/c/class_26_A.d (-g -inline -release)
PASS -> FAIL: run/c/class_26_A.d (-g -fPIC -O)
PASS -> ERROR: run/c/class_26_A.d (-g -fPIC -release)
PASS -> ERROR: run/c/class_26_A.d (-g -O -release)
PASS -> FAIL: run/c/class_26_A.d (-inline -fPIC -O)
PASS -> ERROR: run/c/class_26_A.d (-inline -fPIC -release)
PASS -> ERROR: run/c/class_26_A.d (-inline -O -release)
PASS -> ERROR: run/c/class_26_A.d (-fPIC -O -release)
PASS -> FAIL: run/c/class_26_A.d (-g -inline -fPIC -O)
PASS -> ERROR: run/c/class_26_A.d (-g -inline -fPIC -release)
PASS -> ERROR: run/c/class_26_A.d (-g -fPIC -O -release)
PASS -> ERROR: run/c/class_26_A.d (-inline -fPIC -O -release)
PASS -> ERROR: run/c/class_26_A.d (-g -inline -fPIC -O -release)
PASS -> ERROR: run/c/class_26_A.d (-g -inline -O -release)
PASS -> FAIL: run/c/class_26_B.d
PASS -> ERROR: run/c/class_26_B.d (-g)
PASS -> FAIL: run/c/class_26_B.d (-inline)
PASS -> FAIL: run/c/class_26_B.d (-fPIC)
PASS -> FAIL: run/c/class_26_B.d (-O)
PASS -> ERROR: run/c/class_26_B.d (-release)
PASS -> ERROR: run/c/class_26_B.d (-g -inline)
PASS -> ERROR: run/c/class_26_B.d (-g -fPIC)
PASS -> FAIL: run/c/class_26_B.d (-g -O)
PASS -> ERROR: run/c/class_26_B.d (-g -release)
PASS -> FAIL: run/c/class_26_B.d (-inline -fPIC)
PASS -> FAIL: run/c/class_26_B.d (-inline -O)
PASS -> ERROR: run/c/class_26_B.d (-inline -release)
PASS -> FAIL: run/c/class_26_B.d (-fPIC -O)
PASS -> ERROR: run/c/class_26_B.d (-fPIC -release)
PASS -> ERROR: run/c/class_26_B.d (-O -release)
PASS -> ERROR: run/c/class_26_B.d (-g -inline -fPIC)
PASS -> FAIL: run/c/class_26_B.d (-g -inline -O)
PASS -> ERROR: run/c/class_26_B.d (-g -inline -release)
PASS -> FAIL: run/c/class_26_B.d (-g -fPIC -O)
PASS -> ERROR: run/c/class_26_B.d (-g -fPIC -release)
PASS -> ERROR: run/c/class_26_B.d (-g -O -release)
PASS -> FAIL: run/c/class_26_B.d (-inline -fPIC -O)
PASS -> ERROR: run/c/class_26_B.d (-inline -fPIC -release)
PASS -> ERROR: run/c/class_26_B.d (-inline -O -release)
PASS -> ERROR: run/c/class_26_B.d (-fPIC -O -release)
PASS -> FAIL: run/c/class_26_B.d (-g -inline -fPIC -O)
PASS -> ERROR: run/c/class_26_B.d (-g -inline -fPIC -release)
PASS -> ERROR: run/c/class_26_B.d (-g -fPIC -O -release)
PASS -> ERROR: run/c/class_26_B.d (-inline -fPIC -O -release)
PASS -> ERROR: run/c/class_26_B.d (-g -inline -fPIC -O -release)
PASS -> ERROR: run/c/class_26_B.d (-g -inline -O -release)

Known internal compiler errors with messages: 
(for details see http://dstress.kuehne.cn/polishing/dmd-internal.txt)

dmd-0.164.bin: expression.c:5739: virtual Expression*
MinAssignExp::semantic(Scope*): Assertion `e2->type->isfloating()' failed.
dmd-0.164.bin: expression.c:725: virtual void
Expression::toMangleBuffer(OutBuffer*): Assertion `0' failed.
dmd-0.164.bin: func.c:475: virtual void FuncDeclaration::semantic3(Scope*):
Assertion `0' failed.
dmd-0.164.bin: template.c:2170: TemplateDeclaration*
TemplateInstance::findTemplateDeclaration(Scope*): Assertion `s->parent' failed.
dmd-0.164.bin: tocsym.c:143: virtual Symbol* VarDeclaration::toSymbol():
Assertion `!needThis()' failed.
dmd-0.164.bin: toobj.c:194: virtual void ClassDeclaration::toObjFile():
Assertion `!scope' failed.
Internal error: ../ztc/cgcod.c 175
Internal error: ../ztc/cgcod.c 562
Internal error: ../ztc/cod1.c 1656


Summary: (288K)
http://dstress.kuehne.cn/www/dstress.html

Details: (629K)
http://dstress.kuehne.cn/www/dmd-0.164.html

Log: (1,6M)
http://dstress.kuehne.cn/raw_results/linux-amd64_dmd-0.164.log.gz

Thomas

-----BEGIN PGP SIGNATURE-----

iD8DBQFE5H20LK5blCcjpWoRAslFAKChQnq8Dmp0bbkfsM372W5U/ee1pgCfRahe
RsOIxfSpFEBuBURZlb93XC8=
=wtnS
-----END PGP SIGNATURE-----
Aug 17 2006
parent reply Walter Bright <newshound digitalmars.com> writes:
class_26_A and class_26_B are invalid code. Both return a delegate that 
relies on the stack frame of foo() existing, but the delegate is called 
after foo() has exited.


More technically,

     1. dg contains the 'this' pointer for the instance of class C
     2. the instance of class C contains a member that is the frame 
pointer for the stack instance of foo()
     3. the stack instance of foo() contains a frame pointer for the 
stack instance of main()

dg(), to get at main.status, has to walk back through 1, 2 and 3. After 
foo() has exited, (2) points to garbage, and so cannot get a correct 
value for (3), and failure ensues.

This will be an excellent test case when D implements the ability for 
delegates to 'escape', but that won't be for 1.0.
Aug 17 2006
next sibling parent reply Walter Bright <newshound digitalmars.com> writes:
Scratch that, I think I found a way to make it work. Leave the test 
cases unchanged in dstress.
Aug 17 2006
parent Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Walter Bright schrieb am 2006-08-18:
 Scratch that, I think I found a way to make it work. Leave the test 
 cases unchanged in dstress.
Glad to know *g* Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFE5XfdLK5blCcjpWoRAiX9AKCWAGgwbD8nQV/6Jr8hGIHSr1ZXyACZAd9c wpcT0MfvReehlojH6D5Q0aM= =o7TT -----END PGP SIGNATURE-----
Aug 18 2006
prev sibling parent Thomas Kuehne <thomas-dloop kuehne.cn> writes:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Walter Bright schrieb am 2006-08-17:
 class_26_A and class_26_B are invalid code. Both return a delegate that 
 relies on the stack frame of foo() existing, but the delegate is called 
 after foo() has exited.


 More technically,

      1. dg contains the 'this' pointer for the instance of class C
      2. the instance of class C contains a member that is the frame 
 pointer for the stack instance of foo()
      3. the stack instance of foo() contains a frame pointer for the 
 stack instance of main()

 dg(), to get at main.status, has to walk back through 1, 2 and 3. After 
 foo() has exited, (2) points to garbage, and so cannot get a correct 
 value for (3), and failure ensues.

 This will be an excellent test case when D implements the ability for 
 delegates to 'escape', but that won't be for 1.0.
Thanks, fixed Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFE5QXeLK5blCcjpWoRArRiAKCA8GFyIPwujy0eJyZCYv5XH1U5OwCfakhB m2EUUkreSHB6ZEzytvUaReA= =mObr -----END PGP SIGNATURE-----
Aug 18 2006