[Issue 4158] switch segfault

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed May 5 14:21:15 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4158



--- Comment #2 from Kyle Foley <k-foley at onu.edu> 2010-05-05 14:21:13 PDT ---
(In reply to comment #1)
> It doesn't actually segfault, it executes a HALT instruction. If there is no
> default in a switch, the compiler inserts one of the form:
> 
>   default: HALT
> 
> The idea is that the default should not be implied as fall-through, which it
> does in C.
> 
> D is behaving as it is designed to.

http://digitalmars.com/d/2.0/statement.html#SwitchStatement

"If none of the case expressions match, and there is not a default statement, a
std.switcherr.SwitchError is thrown. The reason for this is to catch the common
programming error of adding a new value to an enum, but failing to account for
the extra value in switch statements. This behavior is unlike C or C++."

Should sync this with the docs.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list