aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/IR/MetadataTest.cpp
diff options
context:
space:
mode:
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) {