[llvm] r229926 - IR: Add missing null operand to MDSubroutineType
Duncan P. N. Exon Smith
dexonsmith at apple.com
Thu Feb 19 15:25:22 PST 2015
Author: dexonsmith
Date: Thu Feb 19 17:25:21 2015
New Revision: 229926
URL: http://llvm.org/viewvc/llvm-project?rev=229926&view=rev
Log:
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`.
Modified:
llvm/trunk/lib/IR/DebugInfoMetadata.cpp
llvm/trunk/unittests/IR/MetadataTest.cpp
Modified: llvm/trunk/lib/IR/DebugInfoMetadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DebugInfoMetadata.cpp?rev=229926&r1=229925&r2=229926&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DebugInfoMetadata.cpp (original)
+++ llvm/trunk/lib/IR/DebugInfoMetadata.cpp Thu Feb 19 17:25:21 2015
@@ -200,7 +200,7 @@ MDSubroutineType *MDSubroutineType::getI
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);
}
Modified: llvm/trunk/unittests/IR/MetadataTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/MetadataTest.cpp?rev=229926&r1=229925&r2=229926&view=diff
==============================================================================
--- llvm/trunk/unittests/IR/MetadataTest.cpp (original)
+++ llvm/trunk/unittests/IR/MetadataTest.cpp Thu Feb 19 17:25:21 2015
@@ -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;
More information about the llvm-commits
mailing list