After talking with Bill, it seems like the LandingPad handling here is likely
authorEli Friedman <eli.friedman@gmail.com>
Tue, 16 Aug 2011 00:41:37 +0000 (00:41 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Tue, 16 Aug 2011 00:41:37 +0000 (00:41 +0000)
to be wrong (or at least somewhat suspect).  Leave a FIXME for Bill.

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

lib/Transforms/Utils/SimplifyCFG.cpp

index 2d60c35afb13bf94fed5149f3a9266425f8c1b97..9f2c311601e736c8bb02928d2b425032316420a5 100644 (file)
@@ -2266,10 +2266,7 @@ bool SimplifyCFGOpt::SimplifyUnreachable(UnreachableInst *UI) {
                  !isa<LandingPadInst>(BBI)) {
         break;
       }
-      // Note that deleting LandingPad's here is in fact okay, although it
-      // involves a bit of subtle reasoning. If this inst is a LandingPad,
-      // all the predecessors of this block will be the unwind edges of Invokes,
-      // and we can therefore guarantee this block will be erased.
+      // FIXME: Handling of LandingPadInst (landingpad) is suspicious.
     }
 
     // Delete this instruction (any uses are guaranteed to be dead)