aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/IR/MetadataTest.cpp
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-04-18 11:31:38 -0700
committerFangrui Song <maskray@google.com>2020-04-18 12:49:31 -0700
commitaad3d578da0ddf6d0d3d95e5e09a32e47f6dfeb8 (patch)
treebf226a10aaa30fe6e0755ed1387540dad50851c4 /llvm/unittests/IR/MetadataTest.cpp
parentecddafd84a7aa74fb8c4087926db16eb1c459028 (diff)
downloadllvm-aad3d578da0ddf6d0d3d95e5e09a32e47f6dfeb8.zip
llvm-aad3d578da0ddf6d0d3d95e5e09a32e47f6dfeb8.tar.gz
llvm-aad3d578da0ddf6d0d3d95e5e09a32e47f6dfeb8.tar.bz2
[DebugInfo] Change DIEnumerator payload type from int64_t to APInt
This allows the representation of arbitrarily large enumeration values. See https://lists.llvm.org/pipermail/llvm-dev/2017-December/119475.html for context. Reviewed By: andrewrk, aprantl, MaskRay Differential Revision: https://reviews.llvm.org/D62475
Diffstat (limited to 'llvm/unittests/IR/MetadataTest.cpp')
-rw-r--r--llvm/unittests/IR/MetadataTest.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp
index e886c77..b60bcac 100644
--- a/llvm/unittests/IR/MetadataTest.cpp
+++ b/llvm/unittests/IR/MetadataTest.cpp
@@ -1186,7 +1186,7 @@ typedef MetadataTest DIEnumeratorTest;
TEST_F(DIEnumeratorTest, get) {
auto *N = DIEnumerator::get(Context, 7, false, "name");
EXPECT_EQ(dwarf::DW_TAG_enumerator, N->getTag());
- EXPECT_EQ(7, N->getValue());
+ EXPECT_EQ(7, N->getValue().getSExtValue());
EXPECT_FALSE(N->isUnsigned());
EXPECT_EQ("name", N->getName());
EXPECT_EQ(N, DIEnumerator::get(Context, 7, false, "name"));
@@ -1199,6 +1199,15 @@ TEST_F(DIEnumeratorTest, get) {
EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp)));
}
+TEST_F(DIEnumeratorTest, getWithLargeValues) {
+ auto *N = DIEnumerator::get(Context, APInt::getMaxValue(128), false, "val");
+ EXPECT_EQ(128U, N->getValue().countPopulation());
+ EXPECT_EQ(N,
+ DIEnumerator::get(Context, APInt::getMaxValue(128), false, "val"));
+ EXPECT_NE(N,
+ DIEnumerator::get(Context, APInt::getMinValue(128), false, "val"));
+}
+
typedef MetadataTest DIBasicTypeTest;
TEST_F(DIBasicTypeTest, get) {