diff --git a/include/boost/exception/detail/error_info_impl.hpp b/include/boost/exception/detail/error_info_impl.hpp index 883d313..a8d1aa7 100644 --- a/include/boost/exception/detail/error_info_impl.hpp +++ b/include/boost/exception/detail/error_info_impl.hpp @@ -30,6 +30,7 @@ boost protected: + virtual ~error_info_base() throw() { } diff --git a/include/boost/exception/detail/exception_ptr.hpp b/include/boost/exception/detail/exception_ptr.hpp index b6ccf7e..5e5a267 100644 --- a/include/boost/exception/detail/exception_ptr.hpp +++ b/include/boost/exception/detail/exception_ptr.hpp @@ -25,7 +25,7 @@ #include #include #include -#include +#include namespace boost @@ -457,7 +457,12 @@ boost BOOST_ASSERT(p); p.ptr_->rethrow(); BOOST_ASSERT(0); - std::abort(); + #if defined(UNDER_CE) + // some CE platforms don't define ::abort() + exit(-1); + #else + abort(); + #endif } inline diff --git a/include/boost/throw_exception.hpp b/include/boost/throw_exception.hpp index a73acb6..c1bff43 100644 --- a/include/boost/throw_exception.hpp +++ b/include/boost/throw_exception.hpp @@ -1,5 +1,11 @@ -#ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED -#define BOOST_THROW_EXCEPTION_HPP_INCLUDED +#ifndef UUID_AA15E74A856F11E08B8D93F24824019B +#define UUID_AA15E74A856F11E08B8D93F24824019B +#if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#pragma GCC system_header +#endif +#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#pragma warning(push,1) +#endif // MS compatible compilers support #pragma once @@ -79,7 +85,7 @@ template BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const set_info( set_info( set_info( - boost::enable_error_info(x), + enable_error_info(x), throw_function(current_function)), throw_file(file)), throw_line(line))); @@ -88,4 +94,7 @@ template BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const #endif } // namespace boost -#endif // #ifndef BOOST_THROW_EXCEPTION_HPP_INCLUDED +#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) +#pragma warning(pop) +#endif +#endif