Clang crashes on: $ cat foo.cpp enum MyEnum { something_valid, something_invalid }; bool recurse() { MyEnum K; switch (K) { case something_valid: case what_am_i_thinking: int *X = 0; if (recurse()) { } break; } } $ clang foo.cpp -w x.cpp:11:8: error: use of undeclared identifier 'what_am_i_thinking' case what_am_i_thinking: ^ Assertion failed: (LabelAndGotoScopes.count(SC) && "Case not visited?"), function VerifyJumps, file JumpDiagnostics.cpp, line 494. 0 clang 0x0000000101f7b0d5 PrintStackTrace(void*) + 53 1 clang 0x0000000101f7b78b SignalHandler(int) + 379 2 libSystem.B.dylib 0x00007fff86fba1ba _sigtramp + 26 3 libSystem.B.dylib 0x000100010044075c _sigtramp + 2034787772 4 clang 0x0000000101f7b45b raise + 27 5 clang 0x0000000101f7b51a abort + 26 6 clang 0x0000000101f7b4f4 __assert_rtn + 132 7 clang 0x0000000100429b6c (anonymous namespace)::JumpScopeChecker::VerifyJumps() + 492 8 clang 0x00000001004289e7 (anonymous namespace)::JumpScopeChecker::JumpScopeChecker(clang::Stmt*, clang::Sema&) + 263 9 clang 0x0000000100428715 (anonymous namespace)::JumpScopeChecker::JumpScopeChecker(clang::Stmt*, clang::Sema&) + 37 10 clang 0x00000001004286d1 clang::Sema::DiagnoseInvalidJumps(clang::Stmt*) + 49 ...
cloned to <rdar://problem/9852007>
r136447.