[Issue 14532] New: switch block allows creating uninitialized variables
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Apr 30 01:39:52 PDT 2015
https://issues.dlang.org/show_bug.cgi?id=14532
Issue ID: 14532
Summary: switch block allows creating uninitialized variables
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: ketmar at ketmar.no-ip.org
consider the code:
void main () {
import std.stdio;
char ch = '!';
switch (ch) {
int n = 42;
case '!': writeln(n, ": wow!"); break; //(1)
default:
}
}
`n` variable is available at (1), but it is not initialized to 42, it contains
random garbage instead.
compiler should either execute all code before first `case` label
unconditionally, or forbid having unlabeled code in `switch` block.
--
More information about the Digitalmars-d-bugs
mailing list