--- boost\context\detail\fcontext_i386_win.hpp 2012-05-22 21:02:04.000000000 +0100 +++ boost\context\detail\fcontext_i386_win.hpp 2012-06-06 15:20:28.000000000 +0100 @@ -13,14 +13,16 @@ #include #include #include -#pragma warning(push) -#pragma warning(disable:4351) +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4351) +#endif #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX #endif namespace boost { @@ -71,9 +73,11 @@ }} #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif -#pragma warning(pop) +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif #endif // BOOST_CTX_DETAIL_FCONTEXT_I386_H --- boost\context\detail\fcontext_x86_64_win.hpp 2012-05-22 21:02:04.000000000 +0100 +++ boost\context\detail\fcontext_x86_64_win.hpp 2012-06-06 15:21:23.000000000 +0100 @@ -14,14 +14,16 @@ #include #include #include #include -#pragma warning(push) -#pragma warning(disable:4351) +#if defined(BOOST_MSVC) +# pragma warning(push) +# pragma warning(disable:4351) +#endif #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX #endif namespace boost { @@ -78,9 +80,11 @@ }} #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_SUFFIX #endif -#pragma warning(pop) +#if defined(BOOST_MSVC) +# pragma warning(pop) +#endif #endif // BOOST_CTX_DETAIL_FCONTEXT_X86_64_H --- libs\context\src\seh.cpp 2012-04-17 18:17:38.000000000 +0100 +++ libs\context\src\seh.cpp 2012-06-06 23:22:19.000000000 +0100 @@ -18,25 +18,25 @@ #if defined(_MSC_VER) # define SNPRINTF _snprintf #else # define SNPRINTF snprintf #endif -static char * exception_description( +static const char * exception_description( _EXCEPTION_RECORD const* record, char * description, size_t len) { const DWORD code = record->ExceptionCode; const ULONG_PTR * info = record->ExceptionInformation; switch ( code) { case EXCEPTION_ACCESS_VIOLATION: { const char * accessType = ( info[0]) ? "writing" : "reading"; const ULONG_PTR address = info[1]; - SNPRINTF( description, len, "Access violation %s 0x%08lX", accessType, address); + SNPRINTF( description, len, "Access violation %s %p", accessType, reinterpret_cast(address)); return description; } case EXCEPTION_DATATYPE_MISALIGNMENT: return "Datatype misalignment"; case EXCEPTION_BREAKPOINT: return "Breakpoint"; case EXCEPTION_SINGLE_STEP: return "Single step"; case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: return "Array bounds exceeded"; --- libs\context\src\stack_allocator_windows.cpp 2012-04-12 19:42:36.000000000 +0100 +++ libs\context\src\stack_allocator_windows.cpp 2012-06-06 15:17:46.000000000 +0100 @@ -13,12 +13,13 @@ } #include #include #include +#include #include #include #ifdef BOOST_HAS_ABI_HEADERS # include BOOST_ABI_PREFIX