From 95cfd1d8daa3274c44a48312c846f7d09d74e2cd Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Mon, 3 Aug 2009 18:02:07 +0000 Subject: [PATCH] - mingw: __builtin_return_address -> _ReturnAddress, __builtin_frame_address -> _AddressOfReturnAddress - ReactOS-generic.rbuild: Define __STDC__ for MSVC to fix some code depending on it (not using /Za as it breaks other code) svn path=/trunk/; revision=42369 --- reactos/ReactOS-generic.rbuild | 1 + reactos/lib/3rdparty/mingw/gs_support.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/reactos/ReactOS-generic.rbuild b/reactos/ReactOS-generic.rbuild index fd5357025ec..86d3a2df237 100644 --- a/reactos/ReactOS-generic.rbuild +++ b/reactos/ReactOS-generic.rbuild @@ -95,6 +95,7 @@ __inline + 1 /Zl /Zi /W1 diff --git a/reactos/lib/3rdparty/mingw/gs_support.c b/reactos/lib/3rdparty/mingw/gs_support.c index f7cdf6a94ee..90bd8831cf9 100644 --- a/reactos/lib/3rdparty/mingw/gs_support.c +++ b/reactos/lib/3rdparty/mingw/gs_support.c @@ -108,12 +108,22 @@ __report_gsfailure (ULONGLONG StackCookie) else #endif { +#ifdef __GNUC__ #ifdef _WIN64 GS_ContextRecord.Rip = (ULONGLONG) __builtin_return_address (0); GS_ContextRecord.Rsp = (ULONGLONG) __builtin_frame_address (0) + 8; #else GS_ContextRecord.Eip = (DWORD) __builtin_return_address (0); GS_ContextRecord.Esp = (DWORD) __builtin_frame_address (0) + 4; +#endif +#else +#ifdef _WIN64 + GS_ContextRecord.Rip = (ULONGLONG) _ReturnAddress(); + GS_ContextRecord.Rsp = (ULONGLONG) _AddressOfReturnAddress(); +#else + GS_ContextRecord.Eip = (DWORD) _ReturnAddress(); + GS_ContextRecord.Esp = (DWORD) _AddressOfReturnAddress(); +#endif #endif }