aboutsummaryrefslogtreecommitdiffstats
path: root/lib/System/Win32
diff options
context:
space:
mode:
Diffstat (limited to 'lib/System/Win32')
-rw-r--r--lib/System/Win32/DynamicLibrary.inc8
-rw-r--r--lib/System/Win32/Signals.inc9
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/System/Win32/DynamicLibrary.inc b/lib/System/Win32/DynamicLibrary.inc
index 251131e..83c67dc 100644
--- a/lib/System/Win32/DynamicLibrary.inc
+++ b/lib/System/Win32/DynamicLibrary.inc
@@ -37,9 +37,15 @@ using namespace sys;
static std::vector<HMODULE> OpenedHandles;
+#ifdef _WIN64
+ typedef DWORD64 ModuleBaseType;
+#else
+ typedef ULONG ModuleBaseType;
+#endif
+
extern "C" {
static BOOL CALLBACK ELM_Callback(PSTR ModuleName,
- ULONG ModuleBase,
+ ModuleBaseType ModuleBase,
ULONG ModuleSize,
PVOID UserContext)
{
diff --git a/lib/System/Win32/Signals.inc b/lib/System/Win32/Signals.inc
index 7da0c75..399717a 100644
--- a/lib/System/Win32/Signals.inc
+++ b/lib/System/Win32/Signals.inc
@@ -177,7 +177,11 @@ static void Cleanup() {
static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep) {
try {
Cleanup();
-
+
+#ifdef _WIN64
+ // TODO: provide a x64 friendly version of the following
+#else
+
// Initialize the STACKFRAME structure.
STACKFRAME StackFrame;
memset(&StackFrame, 0, sizeof(StackFrame));
@@ -251,6 +255,9 @@ static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep) {
fputc('\n', stderr);
}
+
+#endif
+
} catch (...) {
assert(!"Crashed in LLVMUnhandledExceptionFilter");
}