Fix some obvious bugs in the conditional-cleanup code and then make the
dtor cleanup use it.
llvm-svn: 124309
diff --git a/clang/lib/CodeGen/CGException.cpp b/clang/lib/CodeGen/CGException.cpp
index 5845f1e..58af36a 100644
--- a/clang/lib/CodeGen/CGException.cpp
+++ b/clang/lib/CodeGen/CGException.cpp
@@ -179,8 +179,7 @@
// Initialize it to false at a site that's guaranteed to be run
// before each evaluation.
llvm::BasicBlock *block = OutermostConditional->getStartingBlock();
- new llvm::StoreInst(Builder.getFalse(), run,
- block->getFirstNonPHIOrDbg());
+ new llvm::StoreInst(Builder.getFalse(), run, &block->back());
// Initialize it to true at the current location.
Builder.CreateStore(Builder.getTrue(), run);