@@ -547,7 +547,7 @@ struct CheckFallThroughDiagnostics {
547547 unsigned diag_FallThrough_HasNoReturn;
548548 unsigned diag_FallThrough_ReturnsNonVoid;
549549 unsigned diag_NeverFallThroughOrReturn;
550- enum { Function = 0 , Block, Lambda, Coroutine } funMode;
550+ unsigned funMode; // TODO: use diag::FunModes
551551 SourceLocation FuncLoc;
552552
553553 static CheckFallThroughDiagnostics MakeForFunction (const Decl *Func) {
@@ -572,7 +572,7 @@ struct CheckFallThroughDiagnostics {
572572 else
573573 D.diag_NeverFallThroughOrReturn = 0 ;
574574
575- D.funMode = Function;
575+ D.funMode = diag::FunModes:: Function;
576576 return D;
577577 }
578578
@@ -582,7 +582,7 @@ struct CheckFallThroughDiagnostics {
582582 D.diag_FallThrough_HasNoReturn = 0 ;
583583 D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid;
584584 D.diag_NeverFallThroughOrReturn = 0 ;
585- D.funMode = Coroutine;
585+ D.funMode = diag::FunModes:: Coroutine;
586586 return D;
587587 }
588588
@@ -591,7 +591,7 @@ struct CheckFallThroughDiagnostics {
591591 D.diag_FallThrough_HasNoReturn = diag::err_noreturn_has_return_expr;
592592 D.diag_FallThrough_ReturnsNonVoid = diag::err_falloff_nonvoid;
593593 D.diag_NeverFallThroughOrReturn = 0 ;
594- D.funMode = Block;
594+ D.funMode = diag::FunModes:: Block;
595595 return D;
596596 }
597597
@@ -600,13 +600,13 @@ struct CheckFallThroughDiagnostics {
600600 D.diag_FallThrough_HasNoReturn = diag::err_noreturn_has_return_expr;
601601 D.diag_FallThrough_ReturnsNonVoid = diag::warn_falloff_nonvoid;
602602 D.diag_NeverFallThroughOrReturn = 0 ;
603- D.funMode = Lambda;
603+ D.funMode = diag::FunModes:: Lambda;
604604 return D;
605605 }
606606
607607 bool checkDiagnostics (DiagnosticsEngine &D, bool ReturnsVoid,
608608 bool HasNoReturn) const {
609- if (funMode == Function) {
609+ if (funMode == diag::FunModes:: Function) {
610610 return (ReturnsVoid ||
611611 D.isIgnored (diag::warn_falloff_nonvoid, FuncLoc)) &&
612612 (!HasNoReturn ||
@@ -615,7 +615,7 @@ struct CheckFallThroughDiagnostics {
615615 (!ReturnsVoid ||
616616 D.isIgnored (diag::warn_suggest_noreturn_block, FuncLoc));
617617 }
618- if (funMode == Coroutine) {
618+ if (funMode == diag::FunModes:: Coroutine) {
619619 return (ReturnsVoid ||
620620 D.isIgnored (diag::warn_falloff_nonvoid, FuncLoc)) &&
621621 (!HasNoReturn);
0 commit comments