summaryrefslogtreecommitdiff
path: root/src/pal/src/exception/seh-unwind.cpp
diff options
context:
space:
mode:
authorchunseoklee <chunseoklee@naver.com>2016-07-13 06:28:26 +0900
committerJan Vorlicek <janvorli@microsoft.com>2016-07-12 23:28:26 +0200
commitadb2188ed70751f70a1b9e06aa497bc027cdf8a8 (patch)
tree6d38b1d46f3a21b56643f634cfd2f66ff1f7c197 /src/pal/src/exception/seh-unwind.cpp
parent39703ca1b330bd3857d351fc5e69fe90c01c9901 (diff)
downloadcoreclr-adb2188ed70751f70a1b9e06aa497bc027cdf8a8.tar.gz
coreclr-adb2188ed70751f70a1b9e06aa497bc027cdf8a8.tar.bz2
coreclr-adb2188ed70751f70a1b9e06aa497bc027cdf8a8.zip
active exception regression fix (#6117)
This patch fixes regression caused by 597e160 commit. Previous PAL_VirtualUnwind does not set CONTEXT_UNWOUND_TO_CALL properly. In this patch, the flag is added for non-signaled exception.
Diffstat (limited to 'src/pal/src/exception/seh-unwind.cpp')
-rw-r--r--src/pal/src/exception/seh-unwind.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pal/src/exception/seh-unwind.cpp b/src/pal/src/exception/seh-unwind.cpp
index 763306b15d..c8710de1da 100644
--- a/src/pal/src/exception/seh-unwind.cpp
+++ b/src/pal/src/exception/seh-unwind.cpp
@@ -289,10 +289,16 @@ BOOL PAL_VirtualUnwind(CONTEXT *context, KNONVOLATILE_CONTEXT_POINTERS *contextP
if (unw_is_signal_frame(&cursor) > 0)
{
context->ContextFlags |= CONTEXT_EXCEPTION_ACTIVE;
+#if defined(_ARM_) || defined(_ARM64_)
+ context->ContextFlags &= ~CONTEXT_UNWOUND_TO_CALL;
+#endif // _ARM_ || _ARM64_
}
else
{
context->ContextFlags &= ~CONTEXT_EXCEPTION_ACTIVE;
+#if defined(_ARM_) || defined(_ARM64_)
+ context->ContextFlags |= CONTEXT_UNWOUND_TO_CALL;
+#endif // _ARM_ || _ARM64_
}
// Update the passed in windows context to reflect the unwind