https://issues.dlang.org/show_bug.cgi?id=18605
--- Comment #1 from Yuxuan Shui <yshu...@gmail.com> --- This bug is worse than I thought: auto test(T...)(int t) pure { L:foreach(_; T) { if (t) continue L; return 1; } } void main() @safe { import std.stdio : writeln; writeln(test!(1,2,3)(1)); } Results in an uninitialized return value in @safe code. --