summaryrefslogtreecommitdiff
path: root/src/jit/jiteh.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/jit/jiteh.cpp')
-rw-r--r--src/jit/jiteh.cpp7
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)
{