OSDN Git Service

[WinEH] Reusing HandlerType entries leads to small CatchHigh values
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 17 Apr 2015 20:12:09 +0000 (20:12 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 17 Apr 2015 20:12:09 +0000 (20:12 +0000)
CatchHigh may be smaller than TryHigh if we reuse an outlined catch
handler for two different invokes with different EH states.  We have no
evidence which shows that CatchHigh must be greater than TryHigh or
TryLow.  We can revisit this if we turn out to be wrong.

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

lib/CodeGen/AsmPrinter/Win64Exception.cpp

index c5f1df8..8c90bed 100644 (file)
@@ -437,7 +437,6 @@ void Win64Exception::emitCXXFrameHandler3Table(const MachineFunction *MF) {
             std::max(CatchHigh, FuncInfo.CatchHandlerMaxState[HT.Handler]);
 
       assert(TBME.TryLow <= TBME.TryHigh);
-      assert(CatchHigh >= TBME.TryHigh);
       OS.EmitIntValue(TBME.TryLow, 4);                    // TryLow
       OS.EmitIntValue(TBME.TryHigh, 4);                   // TryHigh
       OS.EmitIntValue(CatchHigh, 4);                      // CatchHigh