Is this a bug?

Jerry jlquinn at optonline.net
Tue Nov 26 22:48:17 PST 2013


"H. S. Teoh" <hsteoh at quickfur.ath.cx> 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 at wyvern:~/d$ ~/dmd2/linux/bin64/dmd switchbug.d -g
>> jlquinn at 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.


More information about the Digitalmars-d mailing list