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(),
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) {