[llvm] r216429 - Revert "Support/APFloat: unique_ptr-ify temp arrays"
Dylan Noblesmith
nobled at dreamwidth.org
Mon Aug 25 19:03:33 PDT 2014
Author: nobled
Date: Mon Aug 25 21:03:33 2014
New Revision: 216429
URL: http://llvm.org/viewvc/llvm-project?rev=216429&view=rev
Log:
Revert "Support/APFloat: unique_ptr-ify temp arrays"
This reverts commit rr216359.
Modified:
llvm/trunk/lib/Support/APFloat.cpp
Modified: llvm/trunk/lib/Support/APFloat.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/APFloat.cpp?rev=216429&r1=216428&r2=216429&view=diff
==============================================================================
--- llvm/trunk/lib/Support/APFloat.cpp (original)
+++ llvm/trunk/lib/Support/APFloat.cpp Mon Aug 25 21:03:33 2014
@@ -1722,8 +1722,7 @@ APFloat::remainder(const APFloat &rhs)
return fs;
int parts = partCount();
- auto XOwner = make_unique<integerPart[]>(parts);
- auto x = XOwner.get();
+ integerPart *x = new integerPart[parts];
bool ignored;
fs = V.convertToInteger(x, parts * integerPartWidth, true,
rmNearestTiesToEven, &ignored);
@@ -1742,6 +1741,7 @@ APFloat::remainder(const APFloat &rhs)
if (isZero())
sign = origSign; // IEEE754 requires this
+ delete[] x;
return fs;
}
@@ -1762,8 +1762,7 @@ APFloat::mod(const APFloat &rhs, roundin
return fs;
int parts = partCount();
- auto XOwner = make_unique<integerPart[]>(parts);
- auto x = XOwner.get();
+ integerPart *x = new integerPart[parts];
bool ignored;
fs = V.convertToInteger(x, parts * integerPartWidth, true,
rmTowardZero, &ignored);
@@ -1782,6 +1781,7 @@ APFloat::mod(const APFloat &rhs, roundin
if (isZero())
sign = origSign; // IEEE754 requires this
+ delete[] x;
}
return fs;
}
@@ -2284,14 +2284,15 @@ APFloat::convertFromSignExtendedInteger(
if (isSigned &&
APInt::tcExtractBit(src, srcCount * integerPartWidth - 1)) {
- auto C = make_unique<integerPart[]>(srcCount);
- auto copy = C.get();
+ integerPart *copy;
/* If we're signed and negative negate a copy. */
sign = true;
+ copy = new integerPart[srcCount];
APInt::tcAssign(copy, src, srcCount);
APInt::tcNegate(copy, srcCount);
status = convertFromUnsignedParts(copy, srcCount, rounding_mode);
+ delete [] copy;
} else {
sign = false;
status = convertFromUnsignedParts(src, srcCount, rounding_mode);
@@ -2544,6 +2545,7 @@ APFloat::convertFromDecimalString(String
/* Overflow and round. */
fs = handleOverflow(rounding_mode);
} else {
+ integerPart *decSignificand;
unsigned int partCount;
/* A tight upper bound on number of bits required to hold an
@@ -2552,8 +2554,7 @@ APFloat::convertFromDecimalString(String
tcMultiplyPart. */
partCount = static_cast<unsigned int>(D.lastSigDigit - D.firstSigDigit) + 1;
partCount = partCountForBits(1 + 196 * partCount / 59);
- auto DecSignificandOwner = make_unique<integerPart[]>(partCount + 1);
- auto decSignificand = DecSignificandOwner.get();
+ decSignificand = new integerPart[partCount + 1];
partCount = 0;
/* Convert to binary efficiently - we do almost all multiplication
@@ -2594,6 +2595,8 @@ APFloat::convertFromDecimalString(String
category = fcNormal;
fs = roundSignificandWithExponent(decSignificand, partCount,
D.exponent, rounding_mode);
+
+ delete [] decSignificand;
}
return fs;
More information about the llvm-commits
mailing list