aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt/config/win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/grt/config/win32.c')
-rw-r--r--src/grt/config/win32.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/grt/config/win32.c b/src/grt/config/win32.c
index 869c7ca61..63d11a23e 100644
--- a/src/grt/config/win32.c
+++ b/src/grt/config/win32.c
@@ -30,13 +30,11 @@
#include <assert.h>
#include <excpt.h>
+#include "grt_itf.h"
+
static int run_env_en;
static jmp_buf run_env;
-extern void grt_overflow_error (void);
-extern void grt_null_access_error (void);
-void __ghdl_maybe_return_via_longjump (int val);
-
static EXCEPTION_DISPOSITION
ghdl_SEH_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
void *EstablisherFrame,
@@ -60,7 +58,8 @@ ghdl_SEH_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
switch (ExceptionRecord->ExceptionCode)
{
case EXCEPTION_ACCESS_VIOLATION:
- grt_null_access_error ();
+ /* Pc is ExceptionRecord->ExceptionAddress. */
+ grt_null_access_error (NULL);
break;
case EXCEPTION_FLT_DENORMAL_OPERAND:
@@ -77,7 +76,7 @@ ghdl_SEH_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
break;
case EXCEPTION_INT_OVERFLOW:
- grt_overflow_error ();
+ grt_overflow_error (NULL);
break;
case EXCEPTION_STACK_OVERFLOW:
@@ -132,6 +131,12 @@ __ghdl_run_through_longjump (int (*func)(void))
return res;
}
+void
+grt_save_backtrace (struct backtrace_addrs *bt, int skip)
+{
+ bt->size = 0;
+}
+
#include <math.h>
double acosh (double x)