Fixing a build glitch in the non-intrusive exception_ptr support (Authorized by Eric)

[SVN r72995]
This commit is contained in:
Emil Dotchevski
2011-07-10 05:45:57 +00:00
parent f5dc3715bc
commit a73deaa3f3
6 changed files with 60 additions and 17 deletions

View File

@ -7,7 +7,7 @@
#define UUID_81522C0EB56511DFAB613DB0DFD72085
#ifdef BOOST_NO_EXCEPTIONS
#error This header requires exception handling to be enabled.
# error This header requires exception handling to be enabled.
#endif
namespace
@ -16,6 +16,12 @@ boost
namespace
exception_detail
{
class clone_base;
#ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR
int clone_current_exception_non_intrusive( clone_base const * & cloned );
#endif
namespace
clone_current_exception_result
{
@ -25,15 +31,12 @@ boost
int const not_supported=3;
}
class clone_base;
int clone_current_exception_msvc_x86( clone_base const * & cloned );
inline
int
clone_current_exception( clone_base const * & cloned )
{
#if defined(BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR) && defined(_MSC_VER) && defined(_M_IX86) && !defined(_M_X64)
return clone_current_exception_msvc_x86(cloned);
#ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR
return clone_current_exception_non_intrusive(cloned);
#else
return clone_current_exception_result::not_supported;
#endif

View File

@ -25,6 +25,7 @@
#include <stdexcept>
#include <new>
#include <ios>
#include <cstdlib>
namespace
boost
@ -455,6 +456,8 @@ boost
{
BOOST_ASSERT(p);
p.ptr_->rethrow();
BOOST_ASSERT(0);
std::abort();
}
inline

View File

@ -132,7 +132,17 @@ boost
}
};
#if defined(__GNUC__)
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
# pragma GCC visibility push (default)
# endif
#endif
class exception;
#if defined(__GNUC__)
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
# pragma GCC visibility pop
# endif
#endif
template <class T>
class shared_ptr;