IRBuilder: Downgrade InsertPointGuard's instruction pointer to a raw pointer.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 8 Oct 2013 17:44:56 +0000 (17:44 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 8 Oct 2013 17:44:56 +0000 (17:44 +0000)
Sadly this loses the checking from AssertingVH, but apparently storing the
end() of a BasicBlock into an AssertingVH has bad consequences as it's not
really an instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192209 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/IRBuilder.h

index 0adfbc40d554dea96bb5cc23550570821b93a6ff..e2aeed3556c1cb33fa83a9dab9443bbeb73c69c9 100644 (file)
@@ -197,7 +197,7 @@ public:
   class InsertPointGuard {
     IRBuilderBase &Builder;
     AssertingVH<BasicBlock> Block;
-    AssertingVH<Instruction> Point;
+    BasicBlock::iterator Point;
     DebugLoc DbgLoc;
 
     InsertPointGuard(const InsertPointGuard &) LLVM_DELETED_FUNCTION;
@@ -209,7 +209,7 @@ public:
           DbgLoc(B.getCurrentDebugLocation()) {}
 
     ~InsertPointGuard() {
-      Builder.restoreIP(InsertPoint(Block, BasicBlock::iterator(Point)));
+      Builder.restoreIP(InsertPoint(Block, Point));
       Builder.SetCurrentDebugLocation(DbgLoc);
     }
   };