summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/IR
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-18 20:36:09 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-02-18 20:36:09 +0000
commit94bbbf0deed49caf1192cad163d4fc3bae5e84c8 (patch)
treeb34ba34c78a46ca21b5035c6511656b7abac3ce9 /llvm/unittests/IR
parentdf52349bb07133cb8a7adbb80c4b764591d70cf2 (diff)
downloadbcm5719-llvm-94bbbf0deed49caf1192cad163d4fc3bae5e84c8.tar.gz
bcm5719-llvm-94bbbf0deed49caf1192cad163d4fc3bae5e84c8.zip
IR: Add MDCompileUnit::replace*()
Add `MDCompileUnit::replaceGlobalVariables()` and `MDCompileUnit::replaceSubprograms()`. llvm-svn: 229743
Diffstat (limited to 'llvm/unittests/IR')
-rw-r--r--llvm/unittests/IR/MetadataTest.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp
index db06fb62fa1..a5d64b116c4 100644
--- a/llvm/unittests/IR/MetadataTest.cpp
+++ b/llvm/unittests/IR/MetadataTest.cpp
@@ -1043,6 +1043,38 @@ TEST_F(MDCompileUnitTest, get) {
EXPECT_EQ(N, MDNode::replaceWithUniqued(std::move(Temp)));
}
+TEST_F(MDCompileUnitTest, replaceArrays) {
+ unsigned SourceLanguage = 1;
+ Metadata *File = MDTuple::getDistinct(Context, None);
+ StringRef Producer = "some producer";
+ bool IsOptimized = false;
+ StringRef Flags = "flag after flag";
+ unsigned RuntimeVersion = 2;
+ StringRef SplitDebugFilename = "another/file";
+ unsigned EmissionKind = 3;
+ Metadata *EnumTypes = MDTuple::getDistinct(Context, None);
+ Metadata *RetainedTypes = MDTuple::getDistinct(Context, None);
+ Metadata *ImportedEntities = MDTuple::getDistinct(Context, None);
+ auto *N = MDCompileUnit::get(
+ Context, SourceLanguage, File, Producer, IsOptimized, Flags,
+ RuntimeVersion, SplitDebugFilename, EmissionKind, EnumTypes,
+ RetainedTypes, nullptr, nullptr, ImportedEntities);
+
+ auto *Subprograms = MDTuple::getDistinct(Context, None);
+ EXPECT_EQ(nullptr, N->getSubprograms());
+ N->replaceSubprograms(Subprograms);
+ EXPECT_EQ(Subprograms, N->getSubprograms());
+ N->replaceSubprograms(nullptr);
+ EXPECT_EQ(nullptr, N->getSubprograms());
+
+ auto *GlobalVariables = MDTuple::getDistinct(Context, None);
+ EXPECT_EQ(nullptr, N->getGlobalVariables());
+ N->replaceGlobalVariables(GlobalVariables);
+ EXPECT_EQ(GlobalVariables, N->getGlobalVariables());
+ N->replaceGlobalVariables(nullptr);
+ EXPECT_EQ(nullptr, N->getGlobalVariables());
+}
+
typedef MetadataTest MDSubprogramTest;
TEST_F(MDSubprogramTest, get) {
OpenPOWER on IntegriCloud