forked from OSchip/llvm-project
parent
cab9603622
commit
539df9ef0a
|
@ -16,6 +16,7 @@
|
|||
#define LLVM_APINT_H
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include "llvm/Support/MathExtras.h"
|
||||
#include <cassert>
|
||||
#include <climits>
|
||||
|
@ -273,6 +274,13 @@ public:
|
|||
initSlowCase(that);
|
||||
}
|
||||
|
||||
#if LLVM_USE_RVALUE_REFERENCES
|
||||
/// @brief Move Constructor.
|
||||
APInt(APInt&& that) : BitWidth(that.BitWidth), VAL(that.VAL) {
|
||||
that.BitWidth = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/// @brief Destructor.
|
||||
~APInt() {
|
||||
if (!isSingleWord())
|
||||
|
@ -587,6 +595,21 @@ public:
|
|||
return AssignSlowCase(RHS);
|
||||
}
|
||||
|
||||
#if LLVM_USE_RVALUE_REFERENCES
|
||||
/// @brief Move assignment operator.
|
||||
APInt& operator=(APInt&& that) {
|
||||
if (!isSingleWord())
|
||||
delete [] pVal;
|
||||
|
||||
BitWidth = that.BitWidth;
|
||||
VAL = that.VAL;
|
||||
|
||||
that.BitWidth = 0;
|
||||
|
||||
return *this;
|
||||
}
|
||||
#endif
|
||||
|
||||
/// The RHS value is assigned to *this. If the significant bits in RHS exceed
|
||||
/// the bit width, the excess bits are truncated. If the bit width is larger
|
||||
/// than 64, the value is zero filled in the unspecified high order bits.
|
||||
|
|
Loading…
Reference in New Issue