summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/IR/MetadataTest.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-18 23:17:51 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-18 23:17:51 +0000
commit5c9a17732bf07b2de850bd03e64c1dfa4030a50f (patch)
tree902d7e8be001b1062d1b119d62fca51aa87ca631 /llvm/unittests/IR/MetadataTest.cpp
parent7bb0738d825d0f8e0e3f36f945e9ae47c9b904f0 (diff)
downloadbcm5719-llvm-5c9a17732bf07b2de850bd03e64c1dfa4030a50f.tar.gz
bcm5719-llvm-5c9a17732bf07b2de850bd03e64c1dfa4030a50f.zip
IR: Allow MDSubrange to have 'count: -1'
It turns out that `count: -1` is a special value indicating an empty array, such as `Values` in: struct T { unsigned Count; int Values[]; }; Handle it. llvm-svn: 229769
Diffstat (limited to 'llvm/unittests/IR/MetadataTest.cpp')
-rw-r--r--llvm/unittests/IR/MetadataTest.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp
index fc2ed73d89c..b6ee46a5d7b 100644
--- a/llvm/unittests/IR/MetadataTest.cpp
+++ b/llvm/unittests/IR/MetadataTest.cpp
@@ -670,6 +670,14 @@ TEST_F(MDSubrangeTest, get) {
EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp)));
}
+TEST_F(MDSubrangeTest, getEmptyArray) {
+ auto *N = MDSubrange::get(Context, -1, 0);
+ EXPECT_EQ(dwarf::DW_TAG_subrange_type, N->getTag());
+ EXPECT_EQ(-1, N->getCount());
+ EXPECT_EQ(0, N->getLo());
+ EXPECT_EQ(N, MDSubrange::get(Context, -1, 0));
+}
+
typedef MetadataTest MDEnumeratorTest;
TEST_F(MDEnumeratorTest, get) {
OpenPOWER on IntegriCloud