[clang-tools-extra] 8649702 - [clang-tidy] Use cast<>/castAs<> instead of dyn_cast<>/getAs<> to avoid dereference of nullptr
Simon Pilgrim via cfe-commits
cfe-commits at lists.llvm.org
Sun Jan 23 05:35:02 PST 2022
Author: Simon Pilgrim
Date: 2022-01-23T12:57:12Z
New Revision: 86497026a266f153d1c2b823fe7758acc4ab959d
URL: https://github.com/llvm/llvm-project/commit/86497026a266f153d1c2b823fe7758acc4ab959d
DIFF: https://github.com/llvm/llvm-project/commit/86497026a266f153d1c2b823fe7758acc4ab959d.diff
LOG: [clang-tidy] Use cast<>/castAs<> instead of dyn_cast<>/getAs<> to avoid dereference of nullptr
The pointer is dereferenced immediately, so assert the cast is correct instead of returning nullptr
Added:
Modified:
clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp b/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
index c9f3a7db03461..dbc3cf2e6128f 100644
--- a/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
+++ b/clang-tools-extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
@@ -192,7 +192,7 @@ void DurationFactoryScaleCheck::check(const MatchFinder::MatchResult &Result) {
Result.Nodes.getNodeAs<BinaryOperator>("div_binop")) {
// We next handle division.
// For division, we only check the RHS.
- const auto *FloatLit = llvm::dyn_cast<FloatingLiteral>(DivBinOp->getRHS());
+ const auto *FloatLit = llvm::cast<FloatingLiteral>(DivBinOp->getRHS());
llvm::Optional<DurationScale> NewScale =
getNewScale(Scale, 1.0 / FloatLit->getValueAsApproximateDouble());
diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
index 6ef10925c1336..4d7c3451acc7a 100644
--- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
@@ -413,9 +413,9 @@ static bool areTypesCompatible(QualType ArgType, QualType ParamType,
// Arithmetic types are interconvertible, except scoped enums.
if (ParamType->isArithmeticType() && ArgType->isArithmeticType()) {
if ((ParamType->isEnumeralType() &&
- ParamType->getAs<EnumType>()->getDecl()->isScoped()) ||
+ ParamType->castAs<EnumType>()->getDecl()->isScoped()) ||
(ArgType->isEnumeralType() &&
- ArgType->getAs<EnumType>()->getDecl()->isScoped()))
+ ArgType->castAs<EnumType>()->getDecl()->isScoped()))
return false;
return true;
More information about the cfe-commits
mailing list