[WinEH] Allow CatchHigh to be equal to TryHigh
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 17 Apr 2015 17:20:30 +0000 (17:20 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 17 Apr 2015 17:20:30 +0000 (17:20 +0000)
Catch blocks which are empty may be in the same state as their try
blocks.  It is not meaningful to give the catch block its own state
number in this case because it can't do anything exceptional.

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

lib/CodeGen/AsmPrinter/Win64Exception.cpp

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