[Lldb-commits] [lldb] d7aa402 - [lldb] PdbAstBuilder - use cast<> instead of dyn_cast<> to avoid dereference of nullptr

Simon Pilgrim via lldb-commits lldb-commits at lists.llvm.org
Sun Jan 23 07:14:41 PST 2022


Author: Simon Pilgrim
Date: 2022-01-23T15:11:08Z
New Revision: d7aa402b4b8a325a68c20d0300ac6bc664766be0

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

LOG: [lldb] PdbAstBuilder - 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: 
    lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
index 9473befa6cc34..dc0969a0ce7c6 100644
--- a/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
+++ b/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
@@ -1081,7 +1081,7 @@ PdbAstBuilder::GetOrCreateFunctionDecl(PdbCompilandSymId func_id) {
 
   clang::FunctionDecl *function_decl = nullptr;
   if (parent->isRecord()) {
-    clang::QualType parent_qt = llvm::dyn_cast<clang::TypeDecl>(parent)
+    clang::QualType parent_qt = llvm::cast<clang::TypeDecl>(parent)
                                     ->getTypeForDecl()
                                     ->getCanonicalTypeInternal();
     lldb::opaque_compiler_type_t parent_opaque_ty =
@@ -1318,7 +1318,7 @@ void PdbAstBuilder::ParseAllNamespacesPlusChildrenOf(
     if (!context->isNamespace())
       continue;
 
-    clang::NamespaceDecl *ns = llvm::dyn_cast<clang::NamespaceDecl>(context);
+    clang::NamespaceDecl *ns = llvm::cast<clang::NamespaceDecl>(context);
     std::string actual_ns = ns->getQualifiedNameAsString();
     if (llvm::StringRef(actual_ns).startswith(*parent)) {
       clang::QualType qt = GetOrCreateType(tid);


        


More information about the lldb-commits mailing list