Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
November 30, 2004 DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
I finally started to mess around with D and managed to crash the latest dmd with this test program: struct bittest_T(int C) { bit b[C]; }; void main() { for (int t=0; t<32; t++) printf("sizeof bittest_T(%i) %i\n", t, bittest_T!(t).sizeof ); } DMD prints this compile error (which makes sense): C:\UTIL\d\fart.d(33): template instance fart.bittest_T!(t) cannot use local 't' as template parameter ..and crashes with an access violation exception. I ran DMD.EXE from MSDEV and it breaks at 0040B6D1: 0040B6CA 90 nop 0040B6CB 90 nop (function entry point?) 0040B6CC 53 push ebx 0040B6CD 31 C0 xor eax,eax 0040B6CF 89 CB mov ebx,ecx 0040B6D1 88 00 mov byte ptr [eax],al Pretty obvious: EAX is set to 0, and then used in a look-up? Memory ECX points to: 003C4438 C4 46 4A 00 B4 CD 39 00 03 00 00 00 1B 00 00 00 ÄFJ.´Í9......... 003C4448 60 40 39 00 1C 00 00 00 58 3B 39 00 00 00 00 00 `@9.....X;9..... 003C4458 7C 44 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 |D<............. Hope this helps, Lionello. -- Get the CACert root certificate (and a personal one) at http://cacert.org/ |
November 30, 2004 Re: DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lionello Lunesu | Same crash with this program: void main() { for (int t=0; t<33; t++) printf("sizeof bittest_T(0) %i\n", (bit[t]).sizeof ); } (Guess what I'm trying to do :-S ) Memory ECX points to: 003C3EE0 C4 46 4A 00 B4 CD 39 00 04 00 00 00 1B 00 00 00 ÄFJ.´Í9......... 003C3EF0 60 40 39 00 1C 00 00 00 D0 3A 39 00 00 00 00 00 `@9.....?:9..... 003C3F00 24 3F 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 $?<............. L. |
November 30, 2004 Re: DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lionello Lunesu | On Tue, 30 Nov 2004 09:23:26 +0200, Lionello Lunesu <lionello.lunesu@crystalinter.remove.com> wrote: > Same crash with this program: > > void main() > { > for (int t=0; t<33; t++) > printf("sizeof bittest_T(0) %i\n", (bit[t]).sizeof ); > } > <snip> D should complain with: Integer constant expression expected instead of t and does for me. -- "Unhappy Microsoft customers have a funny way of becoming Linux, Salesforce.com and Oracle customers." - www.microsoft-watch.com: "The Year in Review: Microsoft Opens Up" "Clearly, if I were one of that Predator hunting team, I would file a complaint with my local member asking why such an unsafe environment should be allowed to continue, tradition or not." - http://www.sydneyanglicans.net/culture/watching/alien_vs_predator/ |
November 30, 2004 Re: DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simon Buchan | I just tested again, it really crashes. # void main() # { # for (int t=0; t<33; t++) # printf("sizeof bittest_T(0) %i\n", (bit[t]).sizeof ); # } DMD 0.107 doesn't say a thing; crashes immediately. Doesn't print the link-line either so I guess it's the compiler. Running WindowsXP with SP2: Microsoft Windows XP [Version 5.1.2600] Digital Mars D Compiler v0.107 OPTLINK (R) for Win32 Release 7.50B1 L. (I've even tried running dmd from cmd.exe, 4nt.exe 5.00u and msdev6: no difference) |
November 30, 2004 Re: DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lionello Lunesu Attachments: | (XP created this file. Is this useful?) |
December 01, 2004 Re: DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lionello Lunesu | [D:\] dmd -v crash.d parse crash semantic crash semantic2 crash semantic3 crash |
December 01, 2004 Re: DMD 0.107 crashed | ||||
---|---|---|---|---|
| ||||
Posted in reply to Lionello Lunesu | -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Added to DStress as http://svn.kuehne.cn/dstress/nocompile/array_initialization_04.d Thomas PS: I can't reproduce this under Linux. Lionello Lunesu schrieb am Tue, 30 Nov 2004 16:20:44 +0200: > I just tested again, it really crashes. > > # void main() > # { > # for (int t=0; t<33; t++) > # printf("sizeof bittest_T(0) %i\n", (bit[t]).sizeof ); > # } > > DMD 0.107 doesn't say a thing; crashes immediately. Doesn't print the link-line either so I guess it's the compiler. > > Running WindowsXP with SP2: > > Microsoft Windows XP [Version 5.1.2600] > Digital Mars D Compiler v0.107 > OPTLINK (R) for Win32 Release 7.50B1 > > L. > > (I've even tried running dmd from cmd.exe, 4nt.exe 5.00u and msdev6: no difference) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.9.9 (GNU/Linux) iD8DBQFBrXwg3w+/yD4P9tIRAqtsAJ9J0MDaCdhErUc73xdURyfBUZCqxgCfZFtb nY6rdW358w97XSQUTL+jz+4= =VqLd -----END PGP SIGNATURE----- |
Copyright © 1999-2021 by the D Language Foundation