summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2018-11-21 20:45:00 +0000
committerBill Wendling <isanbard@gmail.com>2018-11-21 20:45:00 +0000
commitd0b6706c9782d07935ee713687efb4db166e2ae5 (patch)
tree233b436cdad5d7d5b715b3384f34389d4114009a
parentd7656dec98cc0c9509d23b4ac336e86fed709092 (diff)
downloadbcm5719-llvm-d0b6706c9782d07935ee713687efb4db166e2ae5.tar.gz
bcm5719-llvm-d0b6706c9782d07935ee713687efb4db166e2ae5.zip
Update call to EvaluateAsInt() to the new syntax.
llvm-svn: 347419
-rw-r--r--clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp12
-rw-r--r--clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp23
-rw-r--r--clang-tools-extra/clang-tidy/cert/ProperlySeededRandomGeneratorCheck.cpp4
3 files changed, 23 insertions, 16 deletions
diff --git a/clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MisplacedWideningCastCheck.cpp
index b9cbfebe8d9..c36a1b23c92 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) {
- llvm::APSInt Val;
- if (Bop->getRHS()->EvaluateAsInt(Val, Context))
- return Val.getActiveBits();
+ Expr::EvalResult Result;
+ if (Bop->getRHS()->EvaluateAsInt(Result, Context))
+ return Result.Val.getInt().getActiveBits();
} else if (Bop->getOpcode() == BO_Shl) {
- llvm::APSInt Bits;
- if (Bop->getRHS()->EvaluateAsInt(Bits, Context)) {
+ Expr::EvalResult Result;
+ if (Bop->getRHS()->EvaluateAsInt(Result, 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 + Bits.getExtValue();
+ return LHSWidth + Result.Val.getInt().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 2e0a46c91a7..ca3c126340b 100644
--- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp
+++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemsetUsageCheck.cpp
@@ -76,10 +76,13 @@ 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;
- if (!NumFill->EvaluateAsInt(NumValue, *Result.Context) ||
- (NumValue >= 0 && NumValue <= UCharMax))
+ Expr::EvalResult EVResult;
+ if (!NumFill->EvaluateAsInt(EVResult, *Result.Context))
+ return;
+
+ llvm::APSInt NumValue = EVResult.Val.getInt();
+ if (NumValue >= 0 && NumValue <= UCharMax)
return;
diag(NumFill->getBeginLoc(), "memset fill value is out of unsigned "
@@ -94,18 +97,22 @@ void SuspiciousMemsetUsageCheck::check(const MatchFinder::MatchResult &Result) {
const Expr *ByteCount = Call->getArg(2);
// Return if `byte_count` is not zero at compile time.
- llvm::APSInt Value1, Value2;
+ Expr::EvalResult Value2;
if (ByteCount->isValueDependent() ||
- !ByteCount->EvaluateAsInt(Value2, *Result.Context) || Value2 != 0)
+ !ByteCount->EvaluateAsInt(Value2, *Result.Context) ||
+ Value2.Val.getInt() != 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(Value1, *Result.Context) &&
- (Value1 == 0 || Value1.isNegative()))
- return;
+ FillChar->EvaluateAsInt(EVResult, *Result.Context)) {
+ llvm::APSInt Value1 = EVResult.Val.getInt();
+ if (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 256525e35a9..6ae9bd29b8e 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;
}
- llvm::APSInt Value;
- if (Func->getArg(0)->EvaluateAsInt(Value, *Result.Context)) {
+ Expr::EvalResult EVResult;
+ if (Func->getArg(0)->EvaluateAsInt(EVResult, *Result.Context)) {
diag(Func->getExprLoc(),
"random number generator seeded with a constant value will generate a "
"predictable sequence of values");
OpenPOWER on IntegriCloud