[clang-tools-extra] f3f7dc3 - [APFloat] Fix compilation warnings
Ehud Katz via cfe-commits
cfe-commits at lists.llvm.org
Mon Jan 6 01:31:03 PST 2020
Author: Ehud Katz
Date: 2020-01-06T11:30:40+02:00
New Revision: f3f7dc3d2990151a78b246a7a1485d0c13a9fb36
URL: https://github.com/llvm/llvm-project/commit/f3f7dc3d2990151a78b246a7a1485d0c13a9fb36
DIFF: https://github.com/llvm/llvm-project/commit/f3f7dc3d2990151a78b246a7a1485d0c13a9fb36.diff
LOG: [APFloat] Fix compilation warnings
Added:
Modified:
clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
clang/lib/Lex/LiteralSupport.cpp
llvm/lib/Support/APFloat.cpp
llvm/lib/Support/StringRef.cpp
llvm/unittests/ADT/APFloatTest.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
index 64806cee37ef..231e565f27e5 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 66309183a144..5881852b1424 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 f6999a6f236d..d26c5e6cd2e6 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 4142d130d519..b5db172cc1a3 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 927e1fe13671..db529a094c37 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) {
More information about the cfe-commits
mailing list