https://github.com/zahiraam updated 
https://github.com/llvm/llvm-project/pull/159566

>From 5b78181faf98d419ad96b95c089e6046e604a104 Mon Sep 17 00:00:00 2001
From: Zahira Ammarguellat <zahira.ammarguel...@intel.com>
Date: Thu, 18 Sep 2025 05:50:57 -0700
Subject: [PATCH 1/2] [Clangd] Fix dereference of null value

---
 clang-tools-extra/clangd/AST.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/clang-tools-extra/clangd/AST.cpp b/clang-tools-extra/clangd/AST.cpp
index 2f46ecc92576c..55055cd3f8f11 100644
--- a/clang-tools-extra/clangd/AST.cpp
+++ b/clang-tools-extra/clangd/AST.cpp
@@ -145,8 +145,11 @@ std::string getQualification(ASTContext &Context,
   for (const auto *CurD : llvm::reverse(Parents)) {
     if (auto *TD = llvm::dyn_cast<TagDecl>(CurD)) {
       QualType T;
-      if (const auto *RD = dyn_cast<CXXRecordDecl>(TD);
-          ClassTemplateDecl *CTD = RD->getDescribedClassTemplate()) {
+      const auto *RD = dyn_cast<CXXRecordDecl>(TD);
+      ClassTemplateDecl *CTD = nullptr;
+      if (RD)
+        CTD = RD->getDescribedClassTemplate();
+      if (RD && CTD) {
         ArrayRef<TemplateArgument> Args;
         if (const auto *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD))
           Args = SD->getTemplateArgs().asArray();

>From f12b34f8f85e9c4a82b4920c126e0c6f5cf11825 Mon Sep 17 00:00:00 2001
From: Zahira Ammarguellat <zahira.ammarguel...@intel.com>
Date: Thu, 18 Sep 2025 09:11:04 -0700
Subject: [PATCH 2/2] Addressed review comments

---
 clang-tools-extra/clangd/AST.cpp | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/clang-tools-extra/clangd/AST.cpp b/clang-tools-extra/clangd/AST.cpp
index 55055cd3f8f11..d541e51e56d87 100644
--- a/clang-tools-extra/clangd/AST.cpp
+++ b/clang-tools-extra/clangd/AST.cpp
@@ -145,11 +145,8 @@ std::string getQualification(ASTContext &Context,
   for (const auto *CurD : llvm::reverse(Parents)) {
     if (auto *TD = llvm::dyn_cast<TagDecl>(CurD)) {
       QualType T;
-      const auto *RD = dyn_cast<CXXRecordDecl>(TD);
-      ClassTemplateDecl *CTD = nullptr;
-      if (RD)
-        CTD = RD->getDescribedClassTemplate();
-      if (RD && CTD) {
+      if (const auto *RD = cast<CXXRecordDecl>(TD);
+          ClassTemplateDecl *CTD = RD->getDescribedClassTemplate()) {
         ArrayRef<TemplateArgument> Args;
         if (const auto *SD = dyn_cast<ClassTemplateSpecializationDecl>(RD))
           Args = SD->getTemplateArgs().asArray();

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

Reply via email to