www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - DMD 0.107 crashed

reply "Lionello Lunesu" <lionello.lunesu crystalinter.remove.com> writes:
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/ 
Nov 29 2004
parent reply "Lionello Lunesu" <lionello.lunesu crystalinter.remove.com> writes:
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. 
Nov 29 2004
next sibling parent reply "Simon Buchan" <currently no.where> writes:
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/
Nov 30 2004
parent reply "Lionello Lunesu" <lionello.lunesu crystalinter.remove.com> writes:
I just tested again, it really crashes.







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)
Nov 30 2004
parent Thomas Kuehne <thomas-dloop kuehne.thisisspam.cn> writes:
-----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.







 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-----
Dec 01 2004
prev sibling next sibling parent "Lionello Lunesu" <lionello.lunesu crystalinter.remove.com> writes:
(XP created this file. Is this useful?) 


begin 666 e179_appcompat.txt

M`&,`;P!D`&D`; !G`#T
M5 !!`$(`00!3`$4`/ `-``H`/ !%`% `10` `$X`00!-`$4`/0`B`&0`;0!D
M`"X`90!X`&4`( ` `$8`20!,`%0`10!2`#T`( !'`%(`00!"`$T`20!?`$8`
M20!,`%0`10!2`%\`4 !2`$D`5 !!`$,`60`B`#X



M10`]`"(`1 !/`%,`( ` `"\`/ `-``H`( ` `" `( `\`$T`00!4`$,`2 !)
M`$X`1P!?`$8`20!,`$4`( !.`$$`30!%`#T`( !D`&T`9 `N`&4`> !E`"(`
M( !3`$D`6 !%`#T
M`#T

M`#T`( `P`' `, `B`" `3 !)`$X`2P!%`%(`7P!6`$4`4 !3`$D`3P!.`#T`




M3 !'`%\`1 !)`$P`10` `$X`00!-`$4`/0`B`&T`80!K`&4`+ !E`' `90`B






M`$L`7P!$`$$`5 !%`#T
M, `P`#H`, `P`"(`( `O`#X
M`$<`7P!&`$D`3 !%`" `3 !!`$T`10`]`"(`< !E`' `; !A`&,`90`N`&4`
M> !E`"(`( !3`$D`6 !%`#T

M7P!4`%D`4 !%`#T





M2 !)`$X`1P!?`$8`20!,`$4`( !.`$$`30!%`#T`( !S`& `90!L`&P`+ !E






M`$P`20!.`$L`7P!$`$$`5 !%`#T
M, `P`#H`, `P`#H`, `P`"(`( `O`#X
M`$4`6 !%`" `3 !!`$T`10`]`"(`:P!E`'(`; !E`&P`,P`R`"X`9 !L`&P`
M( ` `$8`20!,`%0`10!2`#T`( !'`%(`00!"`$T`20!?`$8`20!,`%0`10!2
M`%\`5 !(`$D`4P!&`$D`3 !%`$\`3 !,`%D`( `^``T`" ` `" `( ` `#P`
M30!!`%0`0P!(`$D`3 !'`%\`1 !)`$P`10` `$X`00!-`$4`/0`B`&L`90!R

M, `B`" `0P!(`$4`0P!+`%,`50!-`#T
M`"(`( !"`$D`3 !?`$8`20!,`$4`7P!6`$4`4 !3`$D`3P!.`#T`( `U`"X`

M`%0`7P!6`$4`4 !3`$D`3P!.`#T
M. `P`"(`( !0`%(`3P!$`%4`0P!4`%\`5 !%`%(`4P!)`$\`3 `]`"(`-0`N

M4 !)`% `5 !)`$\`3 `]`"(`5P!I`&X`9 !O`'<`<P` `$X`5 ` `$(`00!3
M`$4`( !!`% `20` `$,`; !I`&4`; !T`" `1 !,`$P`( ` `$,`3P!-`% `
M00!.`%D`7P!.`$$`30!%`#T`( !-`&D`8P!R`&\`<P!O`&8`= ` `$,`;P!R
M`' `;P!R`&$`= !I`&\`; `B`" `4 !2`$\`1 !5`$,`5 !?`$X`00!-`$4`
M/0`B`$T`:0!C`'(`;P!S`&\`9 !T`*X`( !7`&D`; !D`&\`=P!S`*X`( !/
M`' `90!R`&$`= !I`&X`9P` `%,`>0!S`'0`90!M`"(`( !&`$D`3 !%`%\`



M`#T

M`% `60!2`$D`1P!(`%0`/0`B`*D`( !-`&D`8P!R`&\`<P!O`&8`= ` `$,`
M;P!R`' `;P!R`&$`= !I`&\`; `N`" `00!L`&P`( !R`&D`9P!H`'0`<P` 
M`'(`90!S`&4`< !V`&4`9 `N`"(`( !6`$4`4 !&`$D`3 !%`$0`00!4`$4`
M2 !)`#T`( `P`' `, `B`" `5 !%`%(`1 !)`$P`10!$`$$`5 !%`$P`3P`]



M0P!(`$4`0P!+`%,`50!-`#T

M4 !4`$\`7P!"`$D`3 !?`$8`20!,`$4`7P!6`$4`4 !3`$D`3P!.`#T`( `U






M`$4`/0`B`$4`; !G`&P`:0!S`& `( `H`%4`; !I`'0`90!D`" `4P!T`&$`

A`#X
`
end
Nov 30 2004
prev sibling parent "Lionello Lunesu" <lionello.lunesu crystalinter.remove.com> writes:
[D:\] dmd -v crash.d
parse     crash
semantic  crash
semantic2 crash
semantic3 crash 
Nov 30 2004