mirror of
https://github.com/RPCSX/llvm.git
synced 2025-03-03 02:17:41 +00:00
Fix APInt value initialization to give a zero value as any sane integer type
should, rather than giving a broken value that doesn't even zero/sign-extend properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246836 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
123b024141
commit
c8dacf406f
@ -294,11 +294,12 @@ public:
|
||||
delete[] pVal;
|
||||
}
|
||||
|
||||
/// \brief Default constructor that creates an uninitialized APInt.
|
||||
/// \brief Default constructor that creates an uninteresting APInt
|
||||
/// representing a 1-bit zero value.
|
||||
///
|
||||
/// This is useful for object deserialization (pair this with the static
|
||||
/// method Read).
|
||||
explicit APInt() : BitWidth(1) {}
|
||||
explicit APInt() : BitWidth(1), VAL(0) {}
|
||||
|
||||
/// \brief Returns whether this instance allocated memory.
|
||||
bool needsCleanup() const { return !isSingleWord(); }
|
||||
|
@ -17,6 +17,13 @@ using namespace llvm;
|
||||
|
||||
namespace {
|
||||
|
||||
TEST(APIntTest, ValueInit) {
|
||||
APInt Zero = APInt();
|
||||
EXPECT_TRUE(!Zero);
|
||||
EXPECT_TRUE(!Zero.zext(64));
|
||||
EXPECT_TRUE(!Zero.sext(64));
|
||||
}
|
||||
|
||||
// Test that APInt shift left works when bitwidth > 64 and shiftamt == 0
|
||||
TEST(APIntTest, ShiftLeftByZero) {
|
||||
APInt One = APInt::getNullValue(65) + 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user