[llvm] r225742 - Revert "IR: Fix an inverted assertion when replacing resolved operands"

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Jan 12 16:34:22 PST 2015


Author: dexonsmith
Date: Mon Jan 12 18:34:21 2015
New Revision: 225742

URL: http://llvm.org/viewvc/llvm-project?rev=225742&view=rev
Log:
Revert "IR: Fix an inverted assertion when replacing resolved operands"

This reverts commit r225738.  Maybe the assertion is just plain wrong,
but this version fails on WAY more bots.  I'll make sure both ways work
in a follow-up but I want to get bots green in the meantime.

Modified:
    llvm/trunk/lib/IR/Metadata.cpp
    llvm/trunk/unittests/IR/MetadataTest.cpp

Modified: llvm/trunk/lib/IR/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=225742&r1=225741&r2=225742&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Metadata.cpp (original)
+++ llvm/trunk/lib/IR/Metadata.cpp Mon Jan 12 18:34:21 2015
@@ -444,7 +444,7 @@ void UniquableMDNode::resolveAfterOperan
 
   // Check if an operand was resolved.
   if (!isOperandUnresolved(Old))
-    assert(!isOperandUnresolved(New) && "Operand just became unresolved");
+    assert(isOperandUnresolved(New) && "Operand just became unresolved");
   else if (!isOperandUnresolved(New))
     decrementUnresolvedOperandCount();
 }

Modified: llvm/trunk/unittests/IR/MetadataTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/MetadataTest.cpp?rev=225742&r1=225741&r2=225742&view=diff
==============================================================================
--- llvm/trunk/unittests/IR/MetadataTest.cpp (original)
+++ llvm/trunk/unittests/IR/MetadataTest.cpp Mon Jan 12 18:34:21 2015
@@ -7,7 +7,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/ADT/STLExtras.h"
 #include "llvm/IR/Metadata.h"
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/Instructions.h"
@@ -362,28 +361,6 @@ TEST_F(MDNodeTest, handleChangedOperandR
   EXPECT_EQ(N4, N6->getOperand(0));
 }
 
-TEST_F(MDNodeTest, replaceResolvedOperand) {
-  // Check code for replacing one resolved operand with another.  If doing this
-  // directly (via replaceOperandWith()) becomes illegal, change the operand to
-  // a global value that gets RAUW'ed.
-  //
-  // Use a temporary node to keep N from being resolved.
-  std::unique_ptr<MDNodeFwdDecl> Temp(MDNodeFwdDecl::get(Context, None));
-  Metadata *Ops[] = {nullptr, Temp.get()};
-
-  MDNode *Empty = MDTuple::get(Context, {});
-  MDNode *N = MDTuple::get(Context, Ops);
-  EXPECT_EQ(nullptr, N->getOperand(0));
-  ASSERT_FALSE(N->isResolved());
-
-  // Check code for replacing resolved nodes.
-  N->replaceOperandWith(0, Empty);
-  EXPECT_EQ(Empty, N->getOperand(0));
-
-  // Remove the reference to Temp; required for teardown.
-  N->replaceOperandWith(1, nullptr);
-}
-
 typedef MetadataTest MetadataAsValueTest;
 
 TEST_F(MetadataAsValueTest, MDNode) {





More information about the llvm-commits mailing list