diff --git a/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp --- a/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/TerminatingContinueCheck.cpp @@ -26,10 +26,11 @@ equalsBoundNode("closestLoop")); Finder->addMatcher( - continueStmt(hasAncestor(stmt(anyOf(forStmt(), whileStmt(), - cxxForRangeStmt(), doStmt())) - .bind("closestLoop")), - hasAncestor(DoWithFalse)) + continueStmt( + hasAncestor(stmt(anyOf(forStmt(), whileStmt(), cxxForRangeStmt(), + doStmt(), switchStmt())) + .bind("closestLoop")), + hasAncestor(DoWithFalse)) .bind("continue"), this); } diff --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone-terminating-continue.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone-terminating-continue.cpp --- a/clang-tools-extra/test/clang-tidy/checkers/bugprone-terminating-continue.cpp +++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone-terminating-continue.cpp @@ -62,4 +62,12 @@ if (n>2) continue; } } while (false); + + do { + switch (2) { + case 1: + case 2: + continue; + } + } while (false); }