mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
APFloat: Add a move ctor and operator=
llvm-svn: 202883
This commit is contained in:
parent
ab35110af8
commit
662a42200f
@ -196,6 +196,7 @@ public:
|
||||
explicit APFloat(double d);
|
||||
explicit APFloat(float f);
|
||||
APFloat(const APFloat &);
|
||||
APFloat(APFloat &&);
|
||||
~APFloat();
|
||||
|
||||
/// @}
|
||||
@ -411,6 +412,7 @@ public:
|
||||
/// @}
|
||||
|
||||
APFloat &operator=(const APFloat &);
|
||||
APFloat &operator=(APFloat &&);
|
||||
|
||||
/// \brief Overload to compute a hash code for an APFloat value.
|
||||
///
|
||||
|
@ -683,6 +683,20 @@ APFloat::operator=(const APFloat &rhs)
|
||||
return *this;
|
||||
}
|
||||
|
||||
APFloat &
|
||||
APFloat::operator=(APFloat &&rhs) {
|
||||
freeSignificand();
|
||||
|
||||
semantics = rhs.semantics;
|
||||
significand = rhs.significand;
|
||||
exponent = rhs.exponent;
|
||||
category = rhs.category;
|
||||
sign = rhs.sign;
|
||||
|
||||
rhs.semantics = &Bogus;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool
|
||||
APFloat::isDenormal() const {
|
||||
return isFiniteNonZero() && (exponent == semantics->minExponent) &&
|
||||
@ -806,6 +820,10 @@ APFloat::APFloat(const APFloat &rhs) {
|
||||
assign(rhs);
|
||||
}
|
||||
|
||||
APFloat::APFloat(APFloat &&rhs) : semantics(&Bogus) {
|
||||
*this = std::move(rhs);
|
||||
}
|
||||
|
||||
APFloat::~APFloat()
|
||||
{
|
||||
freeSignificand();
|
||||
|
Loading…
Reference in New Issue
Block a user