[clang-tools-extra] 738e7f1 - Fix false positive in `bugprone-throw-keyword-missing` check

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 16 04:09:59 PST 2021


Author: Fabian Wolff
Date: 2021-11-16T07:09:17-05:00
New Revision: 738e7f1231949ec248c1d8d154783338215613d1

URL: https://github.com/llvm/llvm-project/commit/738e7f1231949ec248c1d8d154783338215613d1
DIFF: https://github.com/llvm/llvm-project/commit/738e7f1231949ec248c1d8d154783338215613d1.diff

LOG: Fix false positive in `bugprone-throw-keyword-missing` check

Fixes PR#52400. The tests for bugprone-throw-keyword-missing actually
already contain exceptions as class members, but not as members with
initializers, which was probably just an oversight.

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.cpp
    clang-tools-extra/test/clang-tidy/checkers/bugprone-throw-keyword-missing.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.cpp
index 462a33a374a5f..5327a0c8d4c6b 100644
--- a/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.cpp
@@ -26,7 +26,7 @@ void ThrowKeywordMissingCheck::registerMatchers(MatchFinder *Finder) {
               isSameOrDerivedFrom(matchesName("[Ee]xception|EXCEPTION")))),
           unless(anyOf(hasAncestor(stmt(
                            anyOf(cxxThrowExpr(), callExpr(), returnStmt()))),
-                       hasAncestor(varDecl()),
+                       hasAncestor(decl(anyOf(varDecl(), fieldDecl()))),
                        allOf(hasAncestor(CtorInitializerList),
                              unless(hasAncestor(cxxCatchStmt()))))))
           .bind("temporary-exception-not-thrown"),

diff  --git a/clang-tools-extra/test/clang-tidy/checkers/bugprone-throw-keyword-missing.cpp b/clang-tools-extra/test/clang-tidy/checkers/bugprone-throw-keyword-missing.cpp
index 5fae036fc5a39..dff600c947070 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/bugprone-throw-keyword-missing.cpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/bugprone-throw-keyword-missing.cpp
@@ -118,6 +118,7 @@ void localVariableInitTest() {
 
 class CtorInitializerListTest {
   RegularException exc;
+  RegularException exc2{};
 
   CtorInitializerListTest() : exc(RegularException()) {}
 


        


More information about the cfe-commits mailing list