diff --git a/src/statement.c b/src/statement.c index 62b9d31353d6..f6dfd249ba03 100644 --- a/src/statement.c +++ b/src/statement.c @@ -4916,6 +4916,12 @@ Statement *LabelStatement::scopeCode(Scope *sc, Statement **sentry, Statement ** //printf("LabelStatement::scopeCode()\n"); if (statement) statement = statement->scopeCode(sc, sentry, sexit, sfinally); + else + { + *sentry = NULL; + *sexit = NULL; + *sfinally = NULL; + } return this; } diff --git a/test/runnable/xtest46.d b/test/runnable/xtest46.d index 725ad2b96c69..138f9fd1b013 100644 --- a/test/runnable/xtest46.d +++ b/test/runnable/xtest46.d @@ -6740,6 +6740,16 @@ void test10091() auto arr = cast(ubyte[1]) S10091.e; } +/***************************************************/ + +void test12824() +{ +label: + static if (0) + { + } +} + /***************************************************/ // 9130 @@ -7179,6 +7189,7 @@ int main() test8064(); test8105(); test159(); + test12824(); test8283(); test8395(); test5749();