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