diff options
| author | Teresa Johnson <tejohnson@google.com> | 2016-01-06 15:02:40 +0000 |
|---|---|---|
| committer | Teresa Johnson <tejohnson@google.com> | 2016-01-06 15:02:40 +0000 |
| commit | 09afa9061ae1a5937ffe258de811e6cafd86ff16 (patch) | |
| tree | 7a4f676a41ba3e6162736fee30bc44221159138c | |
| parent | 7dbc9cf8760e07f28cea29e337ff3666624dc91d (diff) | |
| download | bcm5719-llvm-09afa9061ae1a5937ffe258de811e6cafd86ff16.tar.gz bcm5719-llvm-09afa9061ae1a5937ffe258de811e6cafd86ff16.zip | |
Add unittest for new CanReplace flag on MDNodes
This adds a unittest for the support added in r256648 to add
a flag that can be used to prevent RAUW on temporary metadata
used as a map key.
llvm-svn: 256938
| -rw-r--r-- | llvm/unittests/IR/MetadataTest.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/unittests/IR/MetadataTest.cpp b/llvm/unittests/IR/MetadataTest.cpp index 257ab7204c6..a745b235a38 100644 --- a/llvm/unittests/IR/MetadataTest.cpp +++ b/llvm/unittests/IR/MetadataTest.cpp @@ -494,6 +494,20 @@ TEST_F(MDNodeTest, isTemporary) { EXPECT_TRUE(T->isTemporary()); } +#if defined(GTEST_HAS_DEATH_TEST) && !defined(NDEBUG) + +TEST_F(MDNodeTest, deathOnNoReplaceTemporaryRAUW) { + auto Temp = MDNode::getTemporary(Context, None); + Temp->setCanReplace(false); + EXPECT_DEATH(Temp->replaceAllUsesWith(nullptr), + "Attempted to replace Metadata marked for no replacement"); + Temp->setCanReplace(true); + // Remove the references to Temp; required for teardown. + Temp->replaceAllUsesWith(nullptr); +} + +#endif + TEST_F(MDNodeTest, getDistinctWithUnresolvedOperands) { // temporary !{} auto Temp = MDTuple::getTemporary(Context, None); |

