Not sure if this is a bug or as intended. import std.stdio; void main() { int i = 1; switch(i) { case 0: writeln("case 0"); goto default; // needed here default: writeln("default"); // But always falls through here aLabel: writeln("a label"); } }