summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-19 23:25:21 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-19 23:25:21 +0000
commita9f0a8d32563e7f87dab56c5b371dcf618dc7f29 (patch)
tree98c70104b3253d28a59df9b017edd830bffe8abc
parent4c2b0781a5748620adc5529cd986f3f2a7d32b80 (diff)
downloadbcm5719-llvm-a9f0a8d32563e7f87dab56c5b371dcf618dc7f29.tar.gz
bcm5719-llvm-a9f0a8d32563e7f87dab56c5b371dcf618dc7f29.zip
IR: Add missing null operand to MDSubroutineType
Add missing `nullptr` from `MDSubroutineType`'s operands for `MDCompositeTypeBase::getIdentifier()` (and add tests for all the other unused fields). This highlights just how crazy it is that `MDSubroutineType` inherits from `MDCompositeTypeBase`. llvm-svn: 229926
-rw-r--r--llvm/lib/IR/DebugInfoMetadata.cpp2
-rw-r--r--llvm/unittests/IR/MetadataTest.cpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/IR/DebugInfoMetadata.cpp b/llvm/lib/IR/DebugInfoMetadata.cpp
index ab79a713357..a2f5d55c3c6 100644
--- a/llvm/lib/IR/DebugInfoMetadata.cpp
+++ b/llvm/lib/IR/DebugInfoMetadata.cpp
@@ -200,7 +200,7 @@ MDSubroutineType *MDSubroutineType::getImpl(LLVMContext &Context,
bool ShouldCreate) {
DEFINE_GETIMPL_LOOKUP(MDSubroutineType, (Flags, TypeArray));
Metadata *Ops[] = {nullptr, nullptr, nullptr, nullptr,
- TypeArray, nullptr, nullptr};
+ TypeArray, nullptr, nullptr, nullptr};
DEFINE_GETIMPL_STORE(MDSubroutineType, (Flags), Ops);
}
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp
index ea49880e918..0c1ef82205e 100644
--- a/llvm/unittests/IR/MetadataTest.cpp
+++ b/llvm/unittests/IR/MetadataTest.cpp
@@ -964,6 +964,15 @@ TEST_F(MDSubroutineTypeTest, get) {
TempMDSubroutineType Temp = N->clone();
EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp)));
+
+ // Test always-empty operands.
+ EXPECT_EQ(nullptr, N->getScope());
+ EXPECT_EQ(nullptr, N->getFile());
+ EXPECT_EQ("", N->getName());
+ EXPECT_EQ(nullptr, N->getBaseType());
+ EXPECT_EQ(nullptr, N->getVTableHolder());
+ EXPECT_EQ(nullptr, N->getTemplateParams());
+ EXPECT_EQ("", N->getIdentifier());
}
typedef MetadataTest MDFileTest;
OpenPOWER on IntegriCloud