From 02f5511ff422b4ba6fcb75df320774132f23db56 Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Tue, 27 Nov 2018 14:15:37 +0000 Subject: [PATCH] Revert r347419 "Update call to EvaluateAsInt() to the new syntax." It's pre-requisite was reverted in r347656. llvm-svn: 347657 --- .../bugprone/MisplacedWideningCastCheck.cpp | 12 +++++------ .../bugprone/SuspiciousMemsetUsageCheck.cpp | 23 ++++++++-------------- .../cert/ProperlySeededRandomGeneratorCheck.cpp | 4 ++-- 3 files changed, 16 insertions(+), 23 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp index c36a1b2..b9cbfeb 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp @@ -65,16 +65,16 @@ static unsigned getMaxCalculationWidth(const ASTContext &Context, if (Bop->getOpcode() == BO_Add) return std::max(LHSWidth, RHSWidth) + 1; if (Bop->getOpcode() == BO_Rem) { - Expr::EvalResult Result; - if (Bop->getRHS()->EvaluateAsInt(Result, Context)) - return Result.Val.getInt().getActiveBits(); + llvm::APSInt Val; + if (Bop->getRHS()->EvaluateAsInt(Val, Context)) + return Val.getActiveBits(); } else if (Bop->getOpcode() == BO_Shl) { - Expr::EvalResult Result; - if (Bop->getRHS()->EvaluateAsInt(Result, Context)) { + llvm::APSInt Bits; + if (Bop->getRHS()->EvaluateAsInt(Bits, Context)) { // We don't handle negative values and large values well. It is assumed // that compiler warnings are written for such values so the user will // fix that. - return LHSWidth + Result.Val.getInt().getExtValue(); + return LHSWidth + Bits.getExtValue(); } // Unknown bitcount, assume there is truncation. diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp index ca3c126..2e0a46c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp @@ -76,13 +76,10 @@ void SuspiciousMemsetUsageCheck::check(const MatchFinder::MatchResult &Result) { // Case 2: fill_char of memset() is larger in size than an unsigned char // so it gets truncated during conversion. + llvm::APSInt NumValue; const auto UCharMax = (1 << Result.Context->getCharWidth()) - 1; - Expr::EvalResult EVResult; - if (!NumFill->EvaluateAsInt(EVResult, *Result.Context)) - return; - - llvm::APSInt NumValue = EVResult.Val.getInt(); - if (NumValue >= 0 && NumValue <= UCharMax) + if (!NumFill->EvaluateAsInt(NumValue, *Result.Context) || + (NumValue >= 0 && NumValue <= UCharMax)) return; diag(NumFill->getBeginLoc(), "memset fill value is out of unsigned " @@ -97,22 +94,18 @@ void SuspiciousMemsetUsageCheck::check(const MatchFinder::MatchResult &Result) { const Expr *ByteCount = Call->getArg(2); // Return if `byte_count` is not zero at compile time. - Expr::EvalResult Value2; + llvm::APSInt Value1, Value2; if (ByteCount->isValueDependent() || - !ByteCount->EvaluateAsInt(Value2, *Result.Context) || - Value2.Val.getInt() != 0) + !ByteCount->EvaluateAsInt(Value2, *Result.Context) || Value2 != 0) return; // Return if `fill_char` is known to be zero or negative at compile // time. In these cases, swapping the args would be a nop, or // introduce a definite bug. The code is likely correct. - Expr::EvalResult EVResult; if (!FillChar->isValueDependent() && - FillChar->EvaluateAsInt(EVResult, *Result.Context)) { - llvm::APSInt Value1 = EVResult.Val.getInt(); - if (Value1 == 0 || Value1.isNegative()) - return; - } + FillChar->EvaluateAsInt(Value1, *Result.Context) && + (Value1 == 0 || Value1.isNegative())) + return; // `byte_count` is known to be zero at compile time, and `fill_char` is // either not known or known to be a positive integer. Emit a warning diff --git a/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp b/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp index 6ae9bd2..256525e 100644 --- a/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp +++ b/clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp @@ -101,8 +101,8 @@ void ProperlySeededRandomGeneratorCheck::checkSeed( return; } - Expr::EvalResult EVResult; - if (Func->getArg(0)->EvaluateAsInt(EVResult, *Result.Context)) { + llvm::APSInt Value; + if (Func->getArg(0)->EvaluateAsInt(Value, *Result.Context)) { diag(Func->getExprLoc(), "random number generator seeded with a constant value will generate a " "predictable sequence of values"); -- 2.7.4