digitalmars.D.bugs - IPF when compiling Indigo
- Stewart Gordon (43/43) Sep 03 2005 Using DMD 0.129, Windows 98SE.
- =?ISO-8859-1?Q?Thomas_K=FChne?= (28/78) Sep 04 2005 -----BEGIN PGP SIGNED MESSAGE-----
Using DMD 0.129, Windows 98SE. I've spent hours isolating this bug, which is holding back the Indigo project. IPF every time. To see it, you must compile the modules together in one DMD invocation (doesn't matter whether you use -c or not). ----- locale.d ----- module locale; import vector; void ulongToString() { Vector!(wchar) result; } ----- vector.d ----- module vector; template DataStreamability() { const int isStreamable = true; void read(int st, int val) { st >>= val; } } struct Vector(T) { static if (DataStreamability!().isStreamable) { } } ---------- DMD caused an invalid page fault in module DMD.EXE at 0167:004428b1. Registers: EAX=0071fca4 CS=0167 EIP=004428b1 EFLGS=00010202 EBX=004af640 SS=016f ESP=0071fbfc EBP=0071fc14 ECX=00000000 DS=016f ESI=00888e10 FS=13cf EDX=0071fd18 ES=016f EDI=0088b8b4 GS=0000 Bytes at CS:EIP: 8b 01 ff 90 a8 00 00 00 89 45 fc ff 75 08 8b 55 Stack dump: 0088b8b4 00888e10 004af640 00882a58 0071fc44 004482a4 0071fc38 004442ca 0071fca4 0000003c 0043e919 0071fca4 00888e10 004b68a4 0071fd18 0071fc5c ---------- It doesn't seem to matter what operator is used in read, as long as it involves both arguments. Indigo itself uses >> here (and parameter types on which such an expression actually does something). Stewart.
Sep 03 2005
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Stewart Gordon schrieb:Using DMD 0.129, Windows 98SE. I've spent hours isolating this bug, which is holding back the Indigo project. IPF every time. To see it, you must compile the modules together in one DMD invocation (doesn't matter whether you use -c or not). ----- locale.d ----- module locale; import vector; void ulongToString() { Vector!(wchar) result; } ----- vector.d ----- module vector; template DataStreamability() { const int isStreamable = true; void read(int st, int val) { st >>= val; } } struct Vector(T) { static if (DataStreamability!().isStreamable) { } } ---------- DMD caused an invalid page fault in module DMD.EXE at 0167:004428b1. Registers: EAX=0071fca4 CS=0167 EIP=004428b1 EFLGS=00010202 EBX=004af640 SS=016f ESP=0071fbfc EBP=0071fc14 ECX=00000000 DS=016f ESI=00888e10 FS=13cf EDX=0071fd18 ES=016f EDI=0088b8b4 GS=0000 Bytes at CS:EIP: 8b 01 ff 90 a8 00 00 00 89 45 fc ff 75 08 8b 55 Stack dump: 0088b8b4 00888e10 004af640 00882a58 0071fc44 004482a4 0071fc38 004442ca 0071fca4 0000003c 0043e919 0071fca4 00888e10 004b68a4 0071fd18 0071fc5c ---------- It doesn't seem to matter what operator is used in read, as long as it involves both arguments. Indigo itself uses >> here (and parameter types on which such an expression actually does something).segfault: dmd vector.d locale.d no segfault: dmd locale.d vector.d Program received signal SIGSEGV, Segmentation fault. 0x0808861f in BinExp::toElemBin(IRState*, int) () (gdb) bt Added to DStress as http://dstress.kuehne.cn/compile/b/bug_20050903_A.d http://dstress.kuehne.cn/compile/b/bug_20050903_B.d Thomas -----BEGIN PGP SIGNATURE----- iD8DBQFDGtoR3w+/yD4P9tIRAnYeAJ0TjtRNmUVXd2eqc2cbOOsYoCx9jACfQ9bJ l7s5DchgkD81NeGwYFNTRl4= =508H -----END PGP SIGNATURE-----
Sep 04 2005