Author: Manna, Soumi
Date: 2023-05-30T19:02:40-07:00
New Revision: cf236a037fd846d12131809ed07766fceec65fdc

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

LOG: [NFC][CLANG] Fix nullptr dereference issue in 
DeduceTemplateArgumentsByTypeMatch()

DeduceTemplateArgumentsByTypeMatch() returns null value which is dereferenced 
without checking since getAsIncompleteArrayType() returns nullptr and we are 
dereferencing null pointer value for S.Context->getAsIncompleteArrayType(P) 
when calling getElementType().

This patch adds an assert.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D151529

Added: 
    

Modified: 
    clang/lib/Sema/SemaTemplateDeduction.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Sema/SemaTemplateDeduction.cpp 
b/clang/lib/Sema/SemaTemplateDeduction.cpp
index db72b8b3089e..27a8a5990b28 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -1703,10 +1703,12 @@ static Sema::TemplateDeductionResult 
DeduceTemplateArgumentsByTypeMatch(
       if (!IAA)
         return Sema::TDK_NonDeducedMismatch;
 
+      const auto *IAP = S.Context.getAsIncompleteArrayType(P);
+      assert(IAP && "Template parameter not of incomplete array type");
+
       return DeduceTemplateArgumentsByTypeMatch(
-          S, TemplateParams,
-          S.Context.getAsIncompleteArrayType(P)->getElementType(),
-          IAA->getElementType(), Info, Deduced, TDF & TDF_IgnoreQualifiers);
+          S, TemplateParams, IAP->getElementType(), IAA->getElementType(), 
Info,
+          Deduced, TDF & TDF_IgnoreQualifiers);
     }
 
     //     T [integer-constant]


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

Reply via email to