summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2016-01-06 15:02:40 +0000
committerTeresa Johnson <tejohnson@google.com>2016-01-06 15:02:40 +0000
commit09afa9061ae1a5937ffe258de811e6cafd86ff16 (patch)
tree7a4f676a41ba3e6162736fee30bc44221159138c
parent7dbc9cf8760e07f28cea29e337ff3666624dc91d (diff)
downloadbcm5719-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.cpp14
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);
OpenPOWER on IntegriCloud