Home | History | Annotate | Download | only in Sema

Lines Matching refs:Jump

1 //===--- JumpDiagnostics.cpp - Protected scope jump analysis ------*- C++ -*-=//
49 /// InDiag - The note to emit if there is a jump into this scope.
52 /// OutDiag - The note to emit if there is an indirect jump out
327 // Jump from the catch into the try is not allowed either.
392 // Jump from the catch to the finally or try is not valid.
404 // Jump from the finally to the try or catch is not valid.
488 Stmt *Jump = Jumps.pop_back_val();
491 if (GotoStmt *GS = dyn_cast<GotoStmt>(Jump)) {
500 if (IndirectGotoStmt *IGS = dyn_cast<IndirectGotoStmt>(Jump)) {
509 SwitchStmt *SS = cast<SwitchStmt>(Jump);
527 /// VerifyIndirectJumps - Verify whether any possible indirect jump
530 /// way to know where the jump is going, we can't implicitly run the
533 /// Thus, an indirect jump is "trivial" if it bypasses no
534 /// initializations and no teardowns. More formally, an indirect jump
538 /// Jump-triviality is transitive but asymmetric.
544 /// jump between A and B is trivial for every indirect goto statement A
559 // down on the number of jump sites we'll have to consider later.
595 // every scope containing a jump site.
600 // entered, then verify that every jump scope can be trivially
610 // Mark all the enclosing scopes from which you can safely jump
626 // Walk through all the jump sites, checking that they can trivially
681 /// Produce primary diagnostic for an indirect jump statement.
682 static void DiagnoseIndirectJumpStmt(Sema &S, IndirectGotoStmt *Jump,
686 S.Diag(Jump->getGotoLoc(), diag::err_indirect_goto_in_protected_scope);
691 /// Produce note diagnostics for a jump into a protected scope.
700 /// Diagnose an indirect jump which is known to cross scopes.
701 void JumpScopeChecker::DiagnoseIndirectJump(IndirectGotoStmt *Jump,
714 DiagnoseIndirectJumpStmt(S, Jump, Target, Diagnosed);
725 DiagnoseIndirectJumpStmt(S, Jump, Target, Diagnosed);
729 // Diagnose this jump if it would be ill-formed in C++98.
731 S.Diag(Jump->getGotoLoc(),
738 /// CheckJump - Validate that the specified jump statement is valid: that it is
756 // It's okay to jump out from a nested scope.
785 // Handle -Wc++98-compat warnings if the jump is well-formed.