[all-commits] [llvm/llvm-project] 7586ae: [NFC][CLANG] Fix static code analyzer concerns wit...
smanna12 via All-commits
all-commits at lists.llvm.org
Tue May 23 07:11:49 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7586aeab7ad3fb035752eea89fd2bb895de21143
https://github.com/llvm/llvm-project/commit/7586aeab7ad3fb035752eea89fd2bb895de21143
Author: Manna, Soumi <soumi.manna at intel.com>
Date: 2023-05-23 (Tue, 23 May 2023)
Changed paths:
M clang/lib/Sema/SemaExprMember.cpp
Log Message:
-----------
[NFC][CLANG] Fix static code analyzer concerns with dereference null return value
Reported by Static Code Analyzer Tool, Coverity:
Inside "SemaExprMember.cpp" file, in clang::Sema::BuildMemberReferenceExpr(clang::Expr *, clang::QualType, clang::SourceLocation, bool, clang::CXXScopeSpec &, clang::SourceLocation, clang::NamedDecl *, clang::DeclarationNameInfo const &, clang::TemplateArgumentListInfo const *, clang::Scope const *, clang::Sema::ActOnMemberAccessExtraArgs *): Return value of function which returns null is dereferenced without checking
//Condition !Base, taking true branch.
if (!Base) {
TypoExpr *TE = nullptr;
QualType RecordTy = BaseType;
//Condition IsArrow, taking true branch.
if (IsArrow) RecordTy = RecordTy->castAs<PointerType>()->getPointeeType();
//returned_null: getAs returns nullptr (checked 279 out of 294 times).
//Condition TemplateArgs != NULL, taking true branch.
//Dereference null return value (NULL_RETURNS)
//dereference: Dereferencing a pointer that might be nullptr RecordTy->getAs() when calling LookupMemberExprInRecord.
if (LookupMemberExprInRecord(
*this, R, nullptr, RecordTy->getAs<RecordType>(), OpLoc, IsArrow,
SS, TemplateArgs != nullptr, TemplateKWLoc, TE))
return ExprError();
if (TE)
return TE;
This patch uses castAs instead of getAs which will assert if the type doesn't match.
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D151130
More information about the All-commits
mailing list