summaryrefslogtreecommitdiff
path: root/byterun/win32.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2007-03-01 10:27:48 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2007-03-01 10:27:48 +0000
commitb4beb4dd7fb82ac4b85ebc6c3da5f01d6f475bd5 (patch)
tree8a76f6d152b534b24bae9f1d6354a6b2e22463d0 /byterun/win32.c
parent66b5626778828d71ba170ccdc6c8a4f7e522ea8c (diff)
downloadocaml-b4beb4dd7fb82ac4b85ebc6c3da5f01d6f475bd5.tar.gz
Stack overflow detection not working under Win64
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7943 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/win32.c')
-rw-r--r--byterun/win32.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/byterun/win32.c b/byterun/win32.c
index df3aee6838..72b68a463d 100644
--- a/byterun/win32.c
+++ b/byterun/win32.c
@@ -406,7 +406,7 @@ void caml_signal_thread(void * lpParam)
#endif /* NATIVE_CODE */
-#ifdef NATIVE_CODE
+#if defined(NATIVE_CODE) && !defined(_WIN64)
/* Handling of system stack overflow.
* Based on code provided by Olivier Andrieu.
@@ -443,6 +443,7 @@ void caml_signal_thread(void * lpParam)
* Win9x. There is an equivalent mechanism on Win9x with
* PAGE_NOACCESS.
*
+ * Currently, does not work under Win64.
*/
static uintnat win32_alt_stack[0x80];
@@ -495,13 +496,8 @@ static LONG CALLBACK
{
DWORD code = exn_info->ExceptionRecord->ExceptionCode;
CONTEXT *ctx = exn_info->ContextRecord;
-#ifdef _WIN64
- DWORD64 *ctx_ip = &(ctx->Rip);
- DWORD64 *ctx_sp = &(ctx->Rsp);
-#else
DWORD *ctx_ip = &(ctx->Eip);
DWORD *ctx_sp = &(ctx->Esp);
-#endif
if (code == EXCEPTION_STACK_OVERFLOW && In_code_area (*ctx_ip))
{