diff options
| author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-02-18 20:36:09 +0000 |
|---|---|---|
| committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-02-18 20:36:09 +0000 |
| commit | 94bbbf0deed49caf1192cad163d4fc3bae5e84c8 (patch) | |
| tree | b34ba34c78a46ca21b5035c6511656b7abac3ce9 /llvm/unittests/IR | |
| parent | df52349bb07133cb8a7adbb80c4b764591d70cf2 (diff) | |
| download | bcm5719-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.cpp | 32 |
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) { |

