Author: Simon Pilgrim
Date: 2022-02-12T11:28:50Z
New Revision: 2188e61691ad89e27583fd3a4197322be830df59

URL: 
https://github.com/llvm/llvm-project/commit/2188e61691ad89e27583fd3a4197322be830df59
DIFF: 
https://github.com/llvm/llvm-project/commit/2188e61691ad89e27583fd3a4197322be830df59.diff

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

The pointer is referenced immediately, so assert the cast is correct instead of 
returning nullptr

It's only later iterations of the loop where the getParent() call might return 
nullptr

Added: 
    

Modified: 
    clang-tools-extra/clang-doc/Serialize.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-doc/Serialize.cpp 
b/clang-tools-extra/clang-doc/Serialize.cpp
index 29762b6b54b1e..c567cda9b6e2c 100644
--- a/clang-tools-extra/clang-doc/Serialize.cpp
+++ b/clang-tools-extra/clang-doc/Serialize.cpp
@@ -357,7 +357,7 @@ template <typename T>
 static void
 populateParentNamespaces(llvm::SmallVector<Reference, 4> &Namespaces,
                          const T *D, bool &IsInAnonymousNamespace) {
-  const auto *DC = dyn_cast<DeclContext>(D);
+  const auto *DC = cast<DeclContext>(D);
   while ((DC = DC->getParent())) {
     if (const auto *N = dyn_cast<NamespaceDecl>(DC)) {
       std::string Namespace;


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to