[clang-tools-extra] 1307f66 - [clang-tidy] getLambdaProperties - use cast<> instead of dyn_cast<> to avoid dereference of nullptr

Simon Pilgrim via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 31 09:25:24 PST 2022


Author: Simon Pilgrim
Date: 2022-01-31T17:25:16Z
New Revision: 1307f66d17e3b63edc27a03c3a64e46d3a7bfa61

URL: https://github.com/llvm/llvm-project/commit/1307f66d17e3b63edc27a03c3a64e46d3a7bfa61
DIFF: https://github.com/llvm/llvm-project/commit/1307f66d17e3b63edc27a03c3a64e46d3a7bfa61.diff

LOG: [clang-tidy] getLambdaProperties - use cast<> instead of dyn_cast<> to avoid dereference of nullptr

The pointers are dereferenced immediately, so assert the cast is correct instead of returning nullptr

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp b/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
index 960eb7b3d6707..8b7373b3d932a 100644
--- a/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
@@ -548,11 +548,10 @@ getLambdaProperties(const MatchFinder::MatchResult &Result) {
   LambdaProperties LP;
 
   const auto *Bind = Result.Nodes.getNodeAs<CallExpr>("bind");
-  const auto *Decl = dyn_cast<FunctionDecl>(Bind->getCalleeDecl());
-  const auto *NS =
-      dyn_cast<NamespaceDecl>(Decl->getEnclosingNamespaceContext());
+  const auto *Decl = cast<FunctionDecl>(Bind->getCalleeDecl());
+  const auto *NS = cast<NamespaceDecl>(Decl->getEnclosingNamespaceContext());
   while (NS->isInlineNamespace())
-    NS = dyn_cast<NamespaceDecl>(NS->getDeclContext());
+    NS = cast<NamespaceDecl>(NS->getDeclContext());
   LP.BindNamespace = NS->getName();
 
   LP.Callable.Type = getCallableType(Result);


        


More information about the cfe-commits mailing list