mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-25 04:39:51 +00:00
I noticed in passing that the Metadata getIfExists method was creating a new
node and returning it if one didn't exist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153798 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6173ed95da
commit
4000afe712
@ -205,11 +205,11 @@ MDNode *MDNode::getMDNode(LLVMContext &Context, ArrayRef<Value*> Vals,
|
||||
ID.AddPointer(Vals[i]);
|
||||
|
||||
void *InsertPoint;
|
||||
MDNode *N = NULL;
|
||||
|
||||
if ((N = pImpl->MDNodeSet.FindNodeOrInsertPos(ID, InsertPoint)))
|
||||
MDNode *N = pImpl->MDNodeSet.FindNodeOrInsertPos(ID, InsertPoint);
|
||||
|
||||
if (N || !Insert)
|
||||
return N;
|
||||
|
||||
|
||||
bool isFunctionLocal = false;
|
||||
switch (FL) {
|
||||
case FL_Unknown:
|
||||
|
@ -90,13 +90,20 @@ TEST_F(MDNodeTest, Simple) {
|
||||
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));
|
||||
|
Loading…
Reference in New Issue
Block a user