summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEhud Katz <ehudkatz@gmail.com>2020-01-06 10:51:55 +0200
committerEhud Katz <ehudkatz@gmail.com>2020-01-06 11:30:40 +0200
commitf3f7dc3d2990151a78b246a7a1485d0c13a9fb36 (patch)
tree72be159dc861918752f1a8dc35297d62fc9d322c
parentaab72f89b19ae38ea7ac3b7b51aae68fc10aef4f (diff)
downloadbcm5719-llvm-f3f7dc3d2990151a78b246a7a1485d0c13a9fb36.tar.gz
bcm5719-llvm-f3f7dc3d2990151a78b246a7a1485d0c13a9fb36.zip
[APFloat] Fix compilation warnings
-rw-r--r--clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp8
-rw-r--r--clang/lib/Lex/LiteralSupport.cpp7
-rw-r--r--llvm/lib/Support/APFloat.cpp4
-rw-r--r--llvm/lib/Support/StringRef.cpp2
-rw-r--r--llvm/unittests/ADT/APFloatTest.cpp26
5 files changed, 21 insertions, 26 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
index 64806cee37e..231e565f27e 100644
--- a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
@@ -86,11 +86,15 @@ MagicNumbersCheck::MagicNumbersCheck(StringRef Name, ClangTidyContext *Context)
IgnoredDoublePointValues.reserve(IgnoredFloatingPointValuesInput.size());
for (const auto &InputValue : IgnoredFloatingPointValuesInput) {
llvm::APFloat FloatValue(llvm::APFloat::IEEEsingle());
- FloatValue.convertFromString(InputValue, DefaultRoundingMode);
+ if (!FloatValue.convertFromString(InputValue, DefaultRoundingMode)) {
+ assert(false && "Invalid floating point representation");
+ }
IgnoredFloatingPointValues.push_back(FloatValue.convertToFloat());
llvm::APFloat DoubleValue(llvm::APFloat::IEEEdouble());
- DoubleValue.convertFromString(InputValue, DefaultRoundingMode);
+ if (!DoubleValue.convertFromString(InputValue, DefaultRoundingMode)) {
+ assert(false && "Invalid floating point representation");
+ }
IgnoredDoublePointValues.push_back(DoubleValue.convertToDouble());
}
llvm::sort(IgnoredFloatingPointValues.begin(),
diff --git a/clang/lib/Lex/LiteralSupport.cpp b/clang/lib/Lex/LiteralSupport.cpp
index 66309183a14..5881852b142 100644
--- a/clang/lib/Lex/LiteralSupport.cpp
+++ b/clang/lib/Lex/LiteralSupport.cpp
@@ -1053,8 +1053,11 @@ NumericLiteralParser::GetFloatValue(llvm::APFloat &Result) {
auto StatusOrErr =
Result.convertFromString(Str, APFloat::rmNearestTiesToEven);
- assert(StatusOrErr && "Invalid floating point representation");
- return StatusOrErr ? *StatusOrErr : APFloat::opInvalidOp;
+ if (!StatusOrErr) {
+ assert(false && "Invalid floating point representation");
+ return APFloat::opInvalidOp;
+ }
+ return *StatusOrErr;
}
static inline bool IsExponentPart(char c) {
diff --git a/llvm/lib/Support/APFloat.cpp b/llvm/lib/Support/APFloat.cpp
index f6999a6f236..d26c5e6cd2e 100644
--- a/llvm/lib/Support/APFloat.cpp
+++ b/llvm/lib/Support/APFloat.cpp
@@ -4511,7 +4511,9 @@ hash_code hash_value(const APFloat &Arg) {
APFloat::APFloat(const fltSemantics &Semantics, StringRef S)
: APFloat(Semantics) {
auto StatusOrErr = convertFromString(S, rmNearestTiesToEven);
- assert(StatusOrErr && "Invalid floating point representation");
+ if (!StatusOrErr) {
+ assert(false && "Invalid floating point representation");
+ }
}
APFloat::opStatus APFloat::convert(const fltSemantics &ToSemantics,
diff --git a/llvm/lib/Support/StringRef.cpp b/llvm/lib/Support/StringRef.cpp
index 4142d130d51..b5db172cc1a 100644
--- a/llvm/lib/Support/StringRef.cpp
+++ b/llvm/lib/Support/StringRef.cpp
@@ -590,7 +590,7 @@ bool StringRef::getAsDouble(double &Result, bool AllowInexact) const {
APFloat F(0.0);
auto ErrOrStatus = F.convertFromString(*this, APFloat::rmNearestTiesToEven);
if (!ErrOrStatus) {
- assert("Invalid floating point representation");
+ assert(false && "Invalid floating point representation");
return true;
}
diff --git a/llvm/unittests/ADT/APFloatTest.cpp b/llvm/unittests/ADT/APFloatTest.cpp
index 927e1fe1367..db529a094c3 100644
--- a/llvm/unittests/ADT/APFloatTest.cpp
+++ b/llvm/unittests/ADT/APFloatTest.cpp
@@ -666,26 +666,12 @@ TEST(APFloatTest, Zero) {
TEST(APFloatTest, DecimalStringsWithoutNullTerminators) {
// Make sure that we can parse strings without null terminators.
// rdar://14323230.
- APFloat Val(APFloat::IEEEdouble());
- Val.convertFromString(StringRef("0.00", 3),
- llvm::APFloat::rmNearestTiesToEven);
- EXPECT_EQ(Val.convertToDouble(), 0.0);
- Val.convertFromString(StringRef("0.01", 3),
- llvm::APFloat::rmNearestTiesToEven);
- EXPECT_EQ(Val.convertToDouble(), 0.0);
- Val.convertFromString(StringRef("0.09", 3),
- llvm::APFloat::rmNearestTiesToEven);
- EXPECT_EQ(Val.convertToDouble(), 0.0);
- Val.convertFromString(StringRef("0.095", 4),
- llvm::APFloat::rmNearestTiesToEven);
- EXPECT_EQ(Val.convertToDouble(), 0.09);
- Val.convertFromString(StringRef("0.00e+3", 7),
- llvm::APFloat::rmNearestTiesToEven);
- EXPECT_EQ(Val.convertToDouble(), 0.00);
- Val.convertFromString(StringRef("0e+3", 4),
- llvm::APFloat::rmNearestTiesToEven);
- EXPECT_EQ(Val.convertToDouble(), 0.00);
-
+ EXPECT_EQ(convertToDoubleFromString(StringRef("0.00", 3)), 0.0);
+ EXPECT_EQ(convertToDoubleFromString(StringRef("0.01", 3)), 0.0);
+ EXPECT_EQ(convertToDoubleFromString(StringRef("0.09", 3)), 0.0);
+ EXPECT_EQ(convertToDoubleFromString(StringRef("0.095", 4)), 0.09);
+ EXPECT_EQ(convertToDoubleFromString(StringRef("0.00e+3", 7)), 0.00);
+ EXPECT_EQ(convertToDoubleFromString(StringRef("0e+3", 4)), 0.00);
}
TEST(APFloatTest, fromZeroDecimalString) {
OpenPOWER on IntegriCloud