@@ -547,14 +547,14 @@ struct CheckFallThroughDiagnostics {
547
547
unsigned diag_FallThrough_HasNoReturn;
548
548
unsigned diag_FallThrough_ReturnsNonVoid;
549
549
unsigned diag_NeverFallThroughOrReturn;
550
- enum { Function, Block, Lambda, Coroutine } funMode;
550
+ enum { Function = 0 , Block, Lambda, Coroutine } funMode;
551
551
SourceLocation FuncLoc;
552
552
553
553
static CheckFallThroughDiagnostics MakeForFunction (const Decl *Func) {
554
554
CheckFallThroughDiagnostics D;
555
555
D.FuncLoc = Func->getLocation ();
556
556
D.diag_FallThrough_HasNoReturn = diag::warn_falloff_noreturn_function;
557
- D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid_function ;
557
+ D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid ;
558
558
559
559
// Don't suggest that virtual functions be marked "noreturn", since they
560
560
// might be overridden by non-noreturn functions.
@@ -580,7 +580,7 @@ struct CheckFallThroughDiagnostics {
580
580
CheckFallThroughDiagnostics D;
581
581
D.FuncLoc = Func->getLocation ();
582
582
D.diag_FallThrough_HasNoReturn = 0 ;
583
- D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid_coroutine ;
583
+ D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid ;
584
584
D.diag_NeverFallThroughOrReturn = 0 ;
585
585
D.funMode = Coroutine;
586
586
return D;
@@ -589,7 +589,7 @@ struct CheckFallThroughDiagnostics {
589
589
static CheckFallThroughDiagnostics MakeForBlock () {
590
590
CheckFallThroughDiagnostics D;
591
591
D.diag_FallThrough_HasNoReturn = diag::err_noreturn_block_has_return_expr;
592
- D.diag_FallThrough_ReturnsNonVoid = diag::err_falloff_nonvoid_block ;
592
+ D.diag_FallThrough_ReturnsNonVoid = diag::err_falloff_nonvoid ;
593
593
D.diag_NeverFallThroughOrReturn = 0 ;
594
594
D.funMode = Block;
595
595
return D;
@@ -598,7 +598,7 @@ struct CheckFallThroughDiagnostics {
598
598
static CheckFallThroughDiagnostics MakeForLambda () {
599
599
CheckFallThroughDiagnostics D;
600
600
D.diag_FallThrough_HasNoReturn = diag::err_noreturn_lambda_has_return_expr;
601
- D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid_lambda ;
601
+ D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid ;
602
602
D.diag_NeverFallThroughOrReturn = 0 ;
603
603
D.funMode = Lambda;
604
604
return D;
@@ -608,7 +608,7 @@ struct CheckFallThroughDiagnostics {
608
608
bool HasNoReturn) const {
609
609
if (funMode == Function) {
610
610
return (ReturnsVoid ||
611
- D.isIgnored (diag::warn_falloff_nonvoid_function , FuncLoc)) &&
611
+ D.isIgnored (diag::warn_falloff_nonvoid , FuncLoc)) &&
612
612
(!HasNoReturn ||
613
613
D.isIgnored (diag::warn_noreturn_function_has_return_expr,
614
614
FuncLoc)) &&
@@ -617,8 +617,7 @@ struct CheckFallThroughDiagnostics {
617
617
}
618
618
if (funMode == Coroutine) {
619
619
return (ReturnsVoid ||
620
- D.isIgnored (diag::warn_falloff_nonvoid_function, FuncLoc) ||
621
- D.isIgnored (diag::warn_falloff_nonvoid_coroutine, FuncLoc)) &&
620
+ D.isIgnored (diag::warn_falloff_nonvoid, FuncLoc)) &&
622
621
(!HasNoReturn);
623
622
}
624
623
// For blocks / lambdas.
@@ -689,13 +688,13 @@ static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
689
688
if (HasNoReturn)
690
689
EmitDiag (RBrace, CD.diag_FallThrough_HasNoReturn );
691
690
else if (!ReturnsVoid)
692
- S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << 1 ;
691
+ S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << CD. funMode << 1 ;
693
692
break ;
694
693
case AlwaysFallThrough:
695
694
if (HasNoReturn)
696
695
EmitDiag (RBrace, CD.diag_FallThrough_HasNoReturn );
697
696
else if (!ReturnsVoid)
698
- S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << 0 ;
697
+ S.Diag (RBrace, CD.diag_FallThrough_ReturnsNonVoid ) << CD. funMode << 0 ;
699
698
break ;
700
699
case NeverFallThroughOrReturn:
701
700
if (ReturnsVoid && !HasNoReturn && CD.diag_NeverFallThroughOrReturn ) {
0 commit comments