Author: sserapion
Date: Sun Dec 28 08:26:21 2008
New Revision: 38425
URL:
http://svn.reactos.org/svn/reactos?rev=38425&view=rev
Log:
Fixed a pointer truncation for 64-bit platform.
Modified:
branches/ros-amd64-bringup/reactos/lib/sdk/crt/except/cpp.c
Modified: branches/ros-amd64-bringup/reactos/lib/sdk/crt/except/cpp.c
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/lib/s…
==============================================================================
--- branches/ros-amd64-bringup/reactos/lib/sdk/crt/except/cpp.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/lib/sdk/crt/except/cpp.c [iso-8859-1] Sun Dec 28
08:26:21 2008
@@ -631,6 +631,21 @@
}
/* vtables */
+#ifdef _WIN64
+
+#define __ASM_VTABLE(name,funcs) \
+ __asm__(".data\n" \
+ "\t.align 8\n" \
+ "\t.quad " __ASM_NAME(#name "_rtti") "\n" \
+ "\t.globl " __ASM_NAME("MSVCRT_" #name
"_vtable") "\n" \
+ __ASM_NAME("MSVCRT_" #name "_vtable") ":\n" \
+ "\t.quad " THISCALL_NAME(MSVCRT_ ## name ## _vector_dtor)
"\n" \
+ funcs "\n\t.text");
+
+#define __ASM_EXCEPTION_VTABLE(name) \
+ __ASM_VTABLE(name, "\t.quad " THISCALL_NAME(MSVCRT_what_exception) )
+
+#else
#define __ASM_VTABLE(name,funcs) \
__asm__(".data\n" \
@@ -643,6 +658,8 @@
#define __ASM_EXCEPTION_VTABLE(name) \
__ASM_VTABLE(name, "\t.long " THISCALL_NAME(MSVCRT_what_exception) )
+
+#endif /* _WIN64 */
#ifndef __GNUC__
void __asm_dummy_vtables(void) {