I noticed in passing that the Metadata getIfExists method was creating a new
node and returning it if one didn't exist.
llvm-svn: 153798
diff --git a/llvm/unittests/VMCore/MetadataTest.cpp b/llvm/unittests/VMCore/MetadataTest.cpp
index 12ac2e7..08927a2 100644
--- a/llvm/unittests/VMCore/MetadataTest.cpp
+++ b/llvm/unittests/VMCore/MetadataTest.cpp
@@ -90,13 +90,20 @@
MDNode *n1 = MDNode::get(Context, V);
Value *const c1 = n1;
MDNode *n2 = MDNode::get(Context, c1);
+ Value *const c2 = n2;
MDNode *n3 = MDNode::get(Context, V);
+ MDNode *n4 = MDNode::getIfExists(Context, V);
+ MDNode *n5 = MDNode::getIfExists(Context, c1);
+ MDNode *n6 = MDNode::getIfExists(Context, c2);
EXPECT_NE(n1, n2);
#ifdef ENABLE_MDNODE_UNIQUING
EXPECT_EQ(n1, n3);
#else
(void) n3;
#endif
+ EXPECT_EQ(n4, n1);
+ EXPECT_EQ(n5, n2);
+ EXPECT_EQ(n6, (Value*)0);
EXPECT_EQ(3u, n1->getNumOperands());
EXPECT_EQ(s1, n1->getOperand(0));