"H. S. Teoh" <[email protected]> writes: > On Tue, Nov 26, 2013 at 06:33:28PM -0500, Jerry wrote: >> If I read correctly, the following is legal code. If you comment out >> one of the case statements, it does the expected thing. With 4 or more, >> it crashes. This is with dmd 2.064.2 on Debian. >> >> If it's a bug, I'll file a report. Thanks! >> >> class BB {} >> class DD : CC {} >> class CC : BB { >> static CC create(string s) { >> // Succeeds with 3 cases, fails with 4 >> switch (s) { >> case "en": >> case "it": >> case "ru": >> case "ko": return new DD; >> default: throw new Exception("blech"); >> } >> } >> } >> >> void main() { >> CC.create("en"); >> } >> >> jlquinn@wyvern:~/d$ ~/dmd2/linux/bin64/dmd switchbug.d -g >> jlquinn@wyvern:~/d$ ./switchbug >> Segmentation fault (core dumped) > [...] > > No crash on dmd git HEAD, Debian/unstable (x86_64). >
If I build dmd from the sources, the program works. It's only the precompiled dmd executable that generates a broken binary.
