]> granicus.if.org Git - llvm/commitdiff
[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 c5f1df883559df493bca8f9a71fa29b5cc375698..8c90bed2b5aa7a4607063089f0d5934b2c8fd883 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