aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsmanna12 <soumi.manna@intel.com>2024-03-27 20:20:22 -0500
committerGitHub <noreply@github.com>2024-03-27 20:20:22 -0500
commit1095f71bdfe25778c169954f249819bc5b553c91 (patch)
tree4c89598b23467fc1718dedeb80e878f6a949a5fc
parentf75eebab887903567906d22e790a3be20a2a6438 (diff)
downloadllvm-1095f71bdfe25778c169954f249819bc5b553c91.zip
llvm-1095f71bdfe25778c169954f249819bc5b553c91.tar.gz
llvm-1095f71bdfe25778c169954f249819bc5b553c91.tar.bz2
[NFC][Clang] Fix potential dereferencing of nullptr (#86759)
This patch replaces dyn_cast<> with cast<> to resolve potential static analyzer bugs for 1. Dereferencing a pointer issue with nullptr GVar when calling addAttribute() in AIXTargetCodeGenInfo::setTargetAttributes(clang::Decl const *, llvm::GlobalValue *, clang::CodeGen::CodeGenModule &). 2. Dereferencing a pointer issue with nullptr GG when calling getCorrespondingConstructor() in DeclareImplicitDeductionGuidesForTypeAlias(clang::Sema &, clang::TypeAliasTemplateDecl *, clang::SourceLocation). 3. Dereferencing a pointer issue with nullptr CurrentBT when calling getKind() in ComplexExprEmitter::GetHigherPrecisionFPType(clang::QualType).
-rw-r--r--clang/lib/CodeGen/CGExprComplex.cpp2
-rw-r--r--clang/lib/CodeGen/Targets/PPC.cpp2
-rw-r--r--clang/lib/Sema/SemaTemplate.cpp2
3 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGExprComplex.cpp b/clang/lib/CodeGen/CGExprComplex.cpp
index b873bc6..c3774d0 100644
--- a/clang/lib/CodeGen/CGExprComplex.cpp
+++ b/clang/lib/CodeGen/CGExprComplex.cpp
@@ -289,7 +289,7 @@ public:
const BinOpInfo &Op);
QualType GetHigherPrecisionFPType(QualType ElementType) {
- const auto *CurrentBT = dyn_cast<BuiltinType>(ElementType);
+ const auto *CurrentBT = cast<BuiltinType>(ElementType);
switch (CurrentBT->getKind()) {
case BuiltinType::Kind::Float16:
return CGF.getContext().FloatTy;
diff --git a/clang/lib/CodeGen/Targets/PPC.cpp b/clang/lib/CodeGen/Targets/PPC.cpp
index 00b0472..3eadb19 100644
--- a/clang/lib/CodeGen/Targets/PPC.cpp
+++ b/clang/lib/CodeGen/Targets/PPC.cpp
@@ -274,7 +274,7 @@ void AIXTargetCodeGenInfo::setTargetAttributes(
if (!isa<llvm::GlobalVariable>(GV))
return;
- auto *GVar = dyn_cast<llvm::GlobalVariable>(GV);
+ auto *GVar = cast<llvm::GlobalVariable>(GV);
auto GVId = GV->getName();
// Is this a global variable specified by the user as toc-data?
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 005529a..aab72db 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -2974,7 +2974,7 @@ void DeclareImplicitDeductionGuidesForTypeAlias(
if (auto *FPrime = SemaRef.InstantiateFunctionDeclaration(
F, TemplateArgListForBuildingFPrime, AliasTemplate->getLocation(),
Sema::CodeSynthesisContext::BuildingDeductionGuides)) {
- auto *GG = dyn_cast<CXXDeductionGuideDecl>(FPrime);
+ auto *GG = cast<CXXDeductionGuideDecl>(FPrime);
buildDeductionGuide(SemaRef, AliasTemplate, FPrimeTemplateParamList,
GG->getCorrespondingConstructor(),
GG->getExplicitSpecifier(), GG->getTypeSourceInfo(),