diff options
Diffstat (limited to 'src/jit/jiteh.cpp')
-rw-r--r-- | src/jit/jiteh.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/jit/jiteh.cpp b/src/jit/jiteh.cpp index 4b3ceaecf6..2d0eee366f 100644 --- a/src/jit/jiteh.cpp +++ b/src/jit/jiteh.cpp @@ -93,7 +93,7 @@ bool EHblkDsc::HasFinallyHandler() bool EHblkDsc::HasFaultHandler() { - return ebdHandlerType == EH_HANDLER_FAULT; + return (ebdHandlerType == EH_HANDLER_FAULT) || (ebdHandlerType == EH_HANDLER_FAULT_WAS_FINALLY); } bool EHblkDsc::HasFinallyOrFaultHandler() @@ -2426,6 +2426,11 @@ bool Compiler::fgNormalizeEHCase2() // this once per dup. fgReplaceJumpTarget(predBlock, newTryStart, insertBeforeBlk); + // Need to adjust ref counts here since we're retargeting edges. + newTryStart->bbRefs++; + assert(insertBeforeBlk->countOfInEdges() > 0); + insertBeforeBlk->bbRefs--; + #ifdef DEBUG if (verbose) { |