Is this a bug?
Jerry
jlquinn at optonline.net
Tue Nov 26 23:06:33 PST 2013
Jerry <jlquinn at optonline.net> writes:
> "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.
Sorry, not true. I had the extra case commented out. Uncommenting it
still gives me a crashing program.
More information about the Digitalmars-d
mailing list