@@ -553,10 +553,8 @@ struct CheckFallThroughDiagnostics {
553
553
static CheckFallThroughDiagnostics MakeForFunction (const Decl *Func) {
554
554
CheckFallThroughDiagnostics D;
555
555
D.FuncLoc = Func->getLocation ();
556
- D.diag_FallThrough_HasNoReturn =
557
- diag::warn_falloff_noreturn_function;
558
- D.diag_FallThrough_ReturnsNonVoid =
559
- diag::warn_falloff_nonvoid_function;
556
+ D.diag_FallThrough_HasNoReturn = diag::warn_falloff_noreturn_function;
557
+ D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid_function;
560
558
561
559
// Don't suggest that virtual functions be marked "noreturn", since they
562
560
// might be overridden by non-noreturn functions.
@@ -570,8 +568,7 @@ struct CheckFallThroughDiagnostics {
570
568
isTemplateInstantiation = Function->isTemplateInstantiation ();
571
569
572
570
if (!isVirtualMethod && !isTemplateInstantiation)
573
- D.diag_NeverFallThroughOrReturn =
574
- diag::warn_suggest_noreturn_function;
571
+ D.diag_NeverFallThroughOrReturn = diag::warn_suggest_noreturn_function;
575
572
else
576
573
D.diag_NeverFallThroughOrReturn = 0 ;
577
574
@@ -583,30 +580,25 @@ struct CheckFallThroughDiagnostics {
583
580
CheckFallThroughDiagnostics D;
584
581
D.FuncLoc = Func->getLocation ();
585
582
D.diag_FallThrough_HasNoReturn = 0 ;
586
- D.diag_FallThrough_ReturnsNonVoid =
587
- diag::warn_falloff_nonvoid_coroutine;
583
+ D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid_coroutine;
588
584
D.diag_NeverFallThroughOrReturn = 0 ;
589
585
D.funMode = Coroutine;
590
586
return D;
591
587
}
592
588
593
589
static CheckFallThroughDiagnostics MakeForBlock () {
594
590
CheckFallThroughDiagnostics D;
595
- D.diag_FallThrough_HasNoReturn =
596
- diag::err_noreturn_block_has_return_expr;
597
- D.diag_FallThrough_ReturnsNonVoid =
598
- diag::err_falloff_nonvoid_block;
591
+ D.diag_FallThrough_HasNoReturn = diag::err_noreturn_block_has_return_expr;
592
+ D.diag_FallThrough_ReturnsNonVoid = diag::err_falloff_nonvoid_block;
599
593
D.diag_NeverFallThroughOrReturn = 0 ;
600
594
D.funMode = Block;
601
595
return D;
602
596
}
603
597
604
598
static CheckFallThroughDiagnostics MakeForLambda () {
605
599
CheckFallThroughDiagnostics D;
606
- D.diag_FallThrough_HasNoReturn =
607
- diag::err_noreturn_lambda_has_return_expr;
608
- D.diag_FallThrough_ReturnsNonVoid =
609
- diag::warn_falloff_nonvoid_lambda;
600
+ D.diag_FallThrough_HasNoReturn = diag::err_noreturn_lambda_has_return_expr;
601
+ D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid_lambda;
610
602
D.diag_NeverFallThroughOrReturn = 0 ;
611
603
D.funMode = Lambda;
612
604
return D;
@@ -616,8 +608,7 @@ struct CheckFallThroughDiagnostics {
616
608
bool HasNoReturn) const {
617
609
if (funMode == Function) {
618
610
return (ReturnsVoid ||
619
- D.isIgnored (diag::warn_falloff_nonvoid_function,
620
- FuncLoc)) &&
611
+ D.isIgnored (diag::warn_falloff_nonvoid_function, FuncLoc)) &&
621
612
(!HasNoReturn ||
622
613
D.isIgnored (diag::warn_noreturn_function_has_return_expr,
623
614
FuncLoc)) &&
@@ -627,8 +618,7 @@ struct CheckFallThroughDiagnostics {
627
618
if (funMode == Coroutine) {
628
619
return (ReturnsVoid ||
629
620
D.isIgnored (diag::warn_falloff_nonvoid_function, FuncLoc) ||
630
- D.isIgnored (diag::warn_falloff_nonvoid_coroutine,
631
- FuncLoc)) &&
621
+ D.isIgnored (diag::warn_falloff_nonvoid_coroutine, FuncLoc)) &&
632
622
(!HasNoReturn);
633
623
}
634
624
// For blocks / lambdas.
@@ -692,34 +682,34 @@ static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
692
682
693
683
// Either in a function body compound statement, or a function-try-block.
694
684
switch (CheckFallThrough (AC)) {
695
- case UnknownFallThrough:
696
- break ;
685
+ case UnknownFallThrough:
686
+ break ;
697
687
698
- case MaybeFallThrough:
699
- if (HasNoReturn)
700
- EmitDiag (RBrace, CD.diag_FallThrough_HasNoReturn );
701
- else if (!ReturnsVoid)
702
- S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << 1 ;
703
- break ;
704
- case AlwaysFallThrough:
705
- if (HasNoReturn)
706
- EmitDiag (RBrace, CD.diag_FallThrough_HasNoReturn );
707
- else if (!ReturnsVoid)
708
- S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << 0 ;
709
- break ;
710
- case NeverFallThroughOrReturn:
711
- if (ReturnsVoid && !HasNoReturn && CD.diag_NeverFallThroughOrReturn ) {
712
- if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
713
- S.Diag (LBrace, CD.diag_NeverFallThroughOrReturn ) << 0 << FD;
714
- } else if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(D)) {
715
- S.Diag (LBrace, CD.diag_NeverFallThroughOrReturn ) << 1 << MD;
716
- } else {
717
- S.Diag (LBrace, CD.diag_NeverFallThroughOrReturn );
718
- }
688
+ case MaybeFallThrough:
689
+ if (HasNoReturn)
690
+ EmitDiag (RBrace, CD.diag_FallThrough_HasNoReturn );
691
+ else if (!ReturnsVoid)
692
+ S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << 1 ;
693
+ break ;
694
+ case AlwaysFallThrough:
695
+ if (HasNoReturn)
696
+ EmitDiag (RBrace, CD.diag_FallThrough_HasNoReturn );
697
+ else if (!ReturnsVoid)
698
+ S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << 0 ;
699
+ break ;
700
+ case NeverFallThroughOrReturn:
701
+ if (ReturnsVoid && !HasNoReturn && CD.diag_NeverFallThroughOrReturn ) {
702
+ if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
703
+ S.Diag (LBrace, CD.diag_NeverFallThroughOrReturn ) << 0 << FD;
704
+ } else if (const ObjCMethodDecl *MD = dyn_cast<ObjCMethodDecl>(D)) {
705
+ S.Diag (LBrace, CD.diag_NeverFallThroughOrReturn ) << 1 << MD;
706
+ } else {
707
+ S.Diag (LBrace, CD.diag_NeverFallThroughOrReturn );
719
708
}
720
- break ;
721
- case NeverFallThrough:
722
- break ;
709
+ }
710
+ break ;
711
+ case NeverFallThrough:
712
+ break ;
723
713
}
724
714
}
725
715
0 commit comments