diff options
author | Michael Gottesman <mgottesman@apple.com> | 2013-07-01 23:54:08 +0000 |
---|---|---|
committer | Michael Gottesman <mgottesman@apple.com> | 2013-07-01 23:54:08 +0000 |
commit | 228156c04fb34fb702d2a4d8d2e954ae59540ca0 (patch) | |
tree | e6a16b35ba0d1658410ed7f679685f7c276373b5 /llvm/unittests/ADT/APFloatTest.cpp | |
parent | 0e6e4aa5db6202a72059819c5cf69c90a9828bfa (diff) | |
download | bcm5719-llvm-228156c04fb34fb702d2a4d8d2e954ae59540ca0.tar.gz bcm5719-llvm-228156c04fb34fb702d2a4d8d2e954ae59540ca0.zip |
[APFloat] Ensure that we can properly parse strings that do not have null terminators.
rdar://14323230
llvm-svn: 185397
Diffstat (limited to 'llvm/unittests/ADT/APFloatTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/APFloatTest.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/APFloatTest.cpp b/llvm/unittests/ADT/APFloatTest.cpp index d322bcdeacb..46dfbd1d13a 100644 --- a/llvm/unittests/ADT/APFloatTest.cpp +++ b/llvm/unittests/ADT/APFloatTest.cpp @@ -538,6 +538,31 @@ TEST(APFloatTest, Zero) { EXPECT_TRUE(APFloat(-0.0).isNegative()); } +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); + +} + TEST(APFloatTest, fromZeroDecimalString) { EXPECT_EQ( 0.0, APFloat(APFloat::IEEEdouble, "0").convertToDouble()); EXPECT_EQ(+0.0, APFloat(APFloat::IEEEdouble, "+0").convertToDouble()); |