aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.com>2022-09-21 19:55:27 +0300
committerrobot-contrib <robot-contrib@yandex-team.com>2022-09-21 19:55:27 +0300
commite35fa9e920c824c1f2faef732d637164202ee522 (patch)
treecb58ea8d9261b33ab962b32be5f30175d5391767
parent03e6b001442731630882038574da6a630b3235f0 (diff)
downloadydb-e35fa9e920c824c1f2faef732d637164202ee522.tar.gz
Update contrib/restricted/boost/exception to 1.80.0
-rw-r--r--contrib/restricted/boost/exception/LICENSE_1_0.txt23
-rw-r--r--contrib/restricted/boost/exception/README.md19
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/current_exception_cast.hpp14
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/clone_current_exception.hpp14
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/error_info_impl.hpp19
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/exception_ptr.hpp155
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/is_output_streamable.hpp13
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/object_hex_dump.hpp13
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/shared_ptr.hpp4
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/detail/type_info.hpp16
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/diagnostic_information.hpp21
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/get_error_info.hpp13
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/info.hpp22
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/to_string.hpp13
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception/to_string_stub.hpp13
-rw-r--r--contrib/restricted/boost/exception/include/boost/exception_ptr.hpp4
-rw-r--r--contrib/restricted/boost/exception/src/clone_current_exception_non_intrusive.cpp2
17 files changed, 284 insertions, 94 deletions
diff --git a/contrib/restricted/boost/exception/LICENSE_1_0.txt b/contrib/restricted/boost/exception/LICENSE_1_0.txt
new file mode 100644
index 0000000000..36b7cd93cd
--- /dev/null
+++ b/contrib/restricted/boost/exception/LICENSE_1_0.txt
@@ -0,0 +1,23 @@
+Boost Software License - Version 1.0 - August 17th, 2003
+
+Permission is hereby granted, free of charge, to any person or organization
+obtaining a copy of the software and accompanying documentation covered by
+this license (the "Software") to use, reproduce, display, distribute,
+execute, and transmit the Software, and to prepare derivative works of the
+Software, and to permit third-parties to whom the Software is furnished to
+do so, all subject to the following:
+
+The copyright notices in the Software and this entire statement, including
+the above license grant, this restriction and the following disclaimer,
+must be included in all copies of the Software, in whole or in part, and
+all derivative works of the Software, unless such copies or derivative
+works are solely in the form of machine-executable object code generated by
+a source language processor.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/contrib/restricted/boost/exception/README.md b/contrib/restricted/boost/exception/README.md
new file mode 100644
index 0000000000..e4c91165da
--- /dev/null
+++ b/contrib/restricted/boost/exception/README.md
@@ -0,0 +1,19 @@
+# Boost Exception
+
+> Dynamic Exception Augmentation Library
+
+## Documentation
+
+https://boostorg.github.io/exception
+
+## Support
+
+* [cpplang on Slack](https://Cpplang.slack.com) (use the `#boost` channel)
+* [Boost Users Mailing List](https://lists.boost.org/mailman/listinfo.cgi/boost-users)
+* [Boost Developers Mailing List](https://lists.boost.org/mailman/listinfo.cgi/boost)
+
+## Distribution
+
+Boost Exception is included in official [Boost](https://www.boost.org/) releases.
+
+Copyright (C) 2006-2021 Emil Dotchevski. Distributed under the [Boost Software License, Version 1.0](http://www.boost.org/LICENSE_1_0.txt).
diff --git a/contrib/restricted/boost/exception/include/boost/exception/current_exception_cast.hpp b/contrib/restricted/boost/exception/include/boost/exception/current_exception_cast.hpp
index 5d81f00b00..950eeff171 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/current_exception_cast.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/current_exception_cast.hpp
@@ -3,14 +3,20 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_7E83C166200811DE885E826156D89593
-#define UUID_7E83C166200811DE885E826156D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_7E83C166200811DE885E826156D89593
+#define BOOST_EXCEPTION_7E83C166200811DE885E826156D89593
+
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/clone_current_exception.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/clone_current_exception.hpp
index 6fc1374737..5c953c1a19 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/clone_current_exception.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/clone_current_exception.hpp
@@ -3,14 +3,20 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_81522C0EB56511DFAB613DB0DFD72085
-#define UUID_81522C0EB56511DFAB613DB0DFD72085
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_81522C0EB56511DFAB613DB0DFD72085
+#define BOOST_EXCEPTION_81522C0EB56511DFAB613DB0DFD72085
+
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
#ifdef BOOST_NO_EXCEPTIONS
# error This header requires exception handling to be enabled.
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/error_info_impl.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/error_info_impl.hpp
index 404296b6c7..30ccffd148 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/error_info_impl.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/error_info_impl.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_CE6983AC753411DDA764247956D89593
-#define UUID_CE6983AC753411DDA764247956D89593
+#ifndef BOOST_EXCEPTION_CE6983AC753411DDA764247956D89593
+#define BOOST_EXCEPTION_CE6983AC753411DDA764247956D89593
#include <boost/config.hpp>
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
@@ -13,12 +13,17 @@
#include <utility>
#include <string>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
@@ -35,7 +40,7 @@ boost
virtual error_info_base * clone() const = 0;
virtual
- ~error_info_base()
+ ~error_info_base() BOOST_NOEXCEPT_OR_NOTHROW
{
}
};
@@ -46,7 +51,7 @@ boost
error_info:
public exception_detail::error_info_base
{
- error_info_base *
+ exception_detail::error_info_base *
clone() const
{
return new error_info<Tag,T>(*this);
@@ -73,7 +78,7 @@ boost
}
#endif
#endif
- ~error_info()
+ ~error_info() BOOST_NOEXCEPT_OR_NOTHROW
{
}
value_type const &
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/exception_ptr.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/exception_ptr.hpp
index 99424dbefe..c3b97b9c48 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/exception_ptr.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/exception_ptr.hpp
@@ -1,54 +1,96 @@
//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
+//Copyright (c) 2019 Dario Menendez, Banco Santander
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_618474C2DE1511DEB74A388C56D89593
-#define UUID_618474C2DE1511DEB74A388C56D89593
+#ifndef BOOST_EXCEPTION_618474C2DE1511DEB74A388C56D89593
+#define BOOST_EXCEPTION_618474C2DE1511DEB74A388C56D89593
#include <boost/config.hpp>
-#ifdef BOOST_NO_EXCEPTIONS
-#error This header requires exception handling to be enabled.
-#endif
#include <boost/exception/exception.hpp>
#include <boost/exception/info.hpp>
#include <boost/exception/diagnostic_information.hpp>
-#include <boost/exception/detail/clone_current_exception.hpp>
+#ifndef BOOST_NO_EXCEPTIONS
+# include <boost/exception/detail/clone_current_exception.hpp>
+#endif
#include <boost/exception/detail/type_info.hpp>
#ifndef BOOST_NO_RTTI
#include <boost/core/demangle.hpp>
#endif
#include <boost/shared_ptr.hpp>
+#include <boost/make_shared.hpp>
#include <stdexcept>
#include <new>
#include <ios>
#include <stdlib.h>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
{
+ namespace
+ exception_detail
+ {
+#ifndef BOOST_NO_CXX11_HDR_EXCEPTION
+ struct
+ std_exception_ptr_wrapper:
+ std::exception
+ {
+ std::exception_ptr p;
+ explicit std_exception_ptr_wrapper( std::exception_ptr const & ptr ) BOOST_NOEXCEPT:
+ p(ptr)
+ {
+ }
+#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
+ explicit std_exception_ptr_wrapper( std::exception_ptr && ptr ) BOOST_NOEXCEPT:
+ p(static_cast<std::exception_ptr &&>(ptr))
+ {
+ }
+#endif
+ };
+ shared_ptr<exception_detail::clone_base const>
+ inline
+ wrap_exception_ptr( std::exception_ptr const & e )
+ {
+ exception_detail::clone_base const & base =
+ boost::enable_current_exception(std_exception_ptr_wrapper(std::current_exception()));
+ return shared_ptr<exception_detail::clone_base const>(base.clone());
+ }
+#endif
+ }
+
class exception_ptr;
- BOOST_NORETURN void rethrow_exception( exception_ptr const & );
- exception_ptr current_exception();
+ namespace exception_detail { void rethrow_exception_( exception_ptr const & ); }
class
exception_ptr
{
typedef boost::shared_ptr<exception_detail::clone_base const> impl;
impl ptr_;
- friend void rethrow_exception( exception_ptr const & );
+ friend void exception_detail::rethrow_exception_( exception_ptr const & );
typedef exception_detail::clone_base const * (impl::*unspecified_bool_type)() const;
public:
exception_ptr()
{
}
+#ifndef BOOST_NO_CXX11_HDR_EXCEPTION
+ exception_ptr( std::exception_ptr const & e ):
+ ptr_(exception_detail::wrap_exception_ptr(e))
+ {
+ }
+#endif
explicit
exception_ptr( impl const & ptr ):
ptr_(ptr)
@@ -70,20 +112,22 @@ boost
}
};
+ template <class E>
+ inline
+ exception_ptr
+ copy_exception( E const & e )
+ {
+ E cp = e;
+ exception_detail::copy_boost_exception(&cp, &e);
+ return exception_ptr(boost::make_shared<wrapexcept<E> >(cp));
+ }
+
template <class T>
inline
exception_ptr
- copy_exception( T const & e )
+ make_exception_ptr( T const & e )
{
- try
- {
- throw enable_current_exception(e);
- }
- catch(
- ... )
- {
- return current_exception();
- }
+ return boost::copy_exception(e);
}
#ifndef BOOST_NO_RTTI
@@ -97,6 +141,7 @@ boost
}
#endif
+#ifndef BOOST_NO_EXCEPTIONS
namespace
exception_detail
{
@@ -105,7 +150,7 @@ boost
boost::exception,
std::bad_alloc
{
- ~bad_alloc_() { }
+ ~bad_alloc_() BOOST_NOEXCEPT_OR_NOTHROW { }
};
struct
@@ -113,7 +158,7 @@ boost
boost::exception,
std::bad_exception
{
- ~bad_exception_() { }
+ ~bad_exception_() BOOST_NOEXCEPT_OR_NOTHROW { }
};
template <class Exception>
@@ -174,7 +219,7 @@ boost
add_original_type(e);
}
- ~unknown_exception()
+ ~unknown_exception() BOOST_NOEXCEPT_OR_NOTHROW
{
}
@@ -220,7 +265,7 @@ boost
add_original_type(e1);
}
- ~current_exception_std_exception_wrapper()
+ ~current_exception_std_exception_wrapper() BOOST_NOEXCEPT_OR_NOTHROW
{
}
@@ -412,11 +457,14 @@ boost
{
return exception_detail::current_exception_std_exception(e);
}
+#ifdef BOOST_NO_CXX11_HDR_EXCEPTION
+ // this case can be handled losslesly with std::current_exception() (see below)
catch(
std::exception & e )
{
return exception_detail::current_exception_unknown_std_exception(e);
}
+#endif
catch(
boost::exception & e )
{
@@ -425,7 +473,19 @@ boost
catch(
... )
{
+#ifndef BOOST_NO_CXX11_HDR_EXCEPTION
+ try
+ {
+ return exception_ptr(std::current_exception());
+ }
+ catch(
+ ...)
+ {
+ return exception_detail::current_exception_unknown_exception();
+ }
+#else
return exception_detail::current_exception_unknown_exception();
+#endif
}
}
}
@@ -454,21 +514,46 @@ boost
BOOST_ASSERT(ret);
return ret;
}
+#endif // ifndef BOOST_NO_EXCEPTIONS
+
+ namespace
+ exception_detail
+ {
+ inline
+ void
+ rethrow_exception_( exception_ptr const & p )
+ {
+ BOOST_ASSERT(p);
+#if defined( BOOST_NO_CXX11_HDR_EXCEPTION ) || defined( BOOST_NO_EXCEPTIONS )
+ p.ptr_->rethrow();
+#else
+ try
+ {
+ p.ptr_->rethrow();
+ }
+ catch(
+ std_exception_ptr_wrapper const & wrp)
+ {
+ // if an std::exception_ptr was wrapped above then rethrow it
+ std::rethrow_exception(wrp.p);
+ }
+#endif
+ }
+ }
BOOST_NORETURN
inline
void
rethrow_exception( exception_ptr const & p )
{
- BOOST_ASSERT(p);
- p.ptr_->rethrow();
+ exception_detail::rethrow_exception_(p);
BOOST_ASSERT(0);
- #if defined(UNDER_CE)
- // some CE platforms don't define ::abort()
- exit(-1);
- #else
- abort();
- #endif
+#if defined(UNDER_CE)
+ // some CE platforms don't define ::abort()
+ exit(-1);
+#else
+ abort();
+#endif
}
inline
@@ -476,6 +561,9 @@ boost
diagnostic_information( exception_ptr const & p, bool verbose=true )
{
if( p )
+#ifdef BOOST_NO_EXCEPTIONS
+ return "<unavailable> due to BOOST_NO_EXCEPTIONS";
+#else
try
{
rethrow_exception(p);
@@ -485,6 +573,7 @@ boost
{
return current_exception_diagnostic_information(verbose);
}
+#endif
return "<empty>";
}
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/is_output_streamable.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/is_output_streamable.hpp
index 10e5c5163e..a61f986bc9 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/is_output_streamable.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/is_output_streamable.hpp
@@ -3,17 +3,22 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_898984B4076411DD973EDFA055D89593
-#define UUID_898984B4076411DD973EDFA055D89593
+#ifndef BOOST_EXCEPTION_898984B4076411DD973EDFA055D89593
+#define BOOST_EXCEPTION_898984B4076411DD973EDFA055D89593
#include <ostream>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/object_hex_dump.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/object_hex_dump.hpp
index 267bf0bf3e..c195de50d9 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/object_hex_dump.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/object_hex_dump.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_6F463AC838DF11DDA3E6909F56D89593
-#define UUID_6F463AC838DF11DDA3E6909F56D89593
+#ifndef BOOST_EXCEPTION_6F463AC838DF11DDA3E6909F56D89593
+#define BOOST_EXCEPTION_6F463AC838DF11DDA3E6909F56D89593
#include <boost/exception/detail/type_info.hpp>
#include <iomanip>
@@ -13,12 +13,17 @@
#include <sstream>
#include <cstdlib>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/shared_ptr.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/shared_ptr.hpp
index 51febe8c8f..24dd16d7b1 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/shared_ptr.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/shared_ptr.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_837060E885AF11E68DA91D15E31AC075
-#define UUID_837060E885AF11E68DA91D15E31AC075
+#ifndef BOOST_EXCEPTION_837060E885AF11E68DA91D15E31AC075
+#define BOOST_EXCEPTION_837060E885AF11E68DA91D15E31AC075
#ifdef BOOST_EXCEPTION_MINI_BOOST
#include <memory>
diff --git a/contrib/restricted/boost/exception/include/boost/exception/detail/type_info.hpp b/contrib/restricted/boost/exception/include/boost/exception/detail/type_info.hpp
index 739ac5748e..0d46fd6e87 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/detail/type_info.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/detail/type_info.hpp
@@ -3,21 +3,27 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_C3E1741C754311DDB2834CCA55D89593
-#define UUID_C3E1741C754311DDB2834CCA55D89593
+#ifndef BOOST_EXCEPTION_C3E1741C754311DDB2834CCA55D89593
+#define BOOST_EXCEPTION_C3E1741C754311DDB2834CCA55D89593
#include <boost/config.hpp>
#include <boost/core/typeinfo.hpp>
#include <boost/core/demangle.hpp>
#include <boost/current_function.hpp>
#include <string>
+#include <string.h>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
@@ -64,7 +70,7 @@ boost
bool
operator<( type_info_ const & a, type_info_ const & b )
{
- return 0!=(a.type_->before(*b.type_));
+ return a.type_!=b.type_ && strcmp(a.type_->name(), b.type_->name()) < 0;
}
};
}
diff --git a/contrib/restricted/boost/exception/include/boost/exception/diagnostic_information.hpp b/contrib/restricted/boost/exception/include/boost/exception/diagnostic_information.hpp
index 2ffc1e2dc4..b5496d32ec 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/diagnostic_information.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/diagnostic_information.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_0552D49838DD11DD90146B8956D89593
-#define UUID_0552D49838DD11DD90146B8956D89593
+#ifndef BOOST_EXCEPTION_0552D49838DD11DD90146B8956D89593
+#define BOOST_EXCEPTION_0552D49838DD11DD90146B8956D89593
#include <boost/config.hpp>
#include <boost/exception/get_error_info.hpp>
@@ -20,12 +20,17 @@
#include <boost/exception/current_exception_cast.hpp>
#endif
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
#ifndef BOOST_NO_EXCEPTIONS
namespace
@@ -45,6 +50,10 @@ boost
std::exception const * se=current_exception_cast<std::exception const>();
if( be || se )
return exception_detail::diagnostic_information_impl(be,se,true,verbose);
+#if defined(__GLIBCXX__) && __cplusplus >= 201103L && !defined(BOOST_NO_RTTI)
+ else if (auto* p=std::current_exception().__cxa_exception_type())
+ return "Dynamic exception type: "+boost::core::demangle(p->name());
+#endif
else
return "No diagnostic information available.";
}
@@ -157,7 +166,7 @@ boost
core::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n';
#endif
if( with_what && se && verbose )
- tmp << "std::exception::what: " << wh << '\n';
+ tmp << "std::exception::what: " << (wh ? wh : "(null)") << '\n';
if( be )
if( char const * s=exception_detail::get_diagnostic_information(*be,tmp.str().c_str()) )
if( *s )
@@ -175,7 +184,7 @@ boost
inline
char const *
- diagnostic_information_what( exception const & e, bool verbose=true ) noexcept
+ diagnostic_information_what( exception const & e, bool verbose=true ) BOOST_NOEXCEPT_OR_NOTHROW
{
char const * w=0;
#ifndef BOOST_NO_EXCEPTIONS
diff --git a/contrib/restricted/boost/exception/include/boost/exception/get_error_info.hpp b/contrib/restricted/boost/exception/include/boost/exception/get_error_info.hpp
index 831717df59..09a224aa53 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/get_error_info.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/get_error_info.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_1A590226753311DD9E4CCF6156D89593
-#define UUID_1A590226753311DD9E4CCF6156D89593
+#ifndef BOOST_EXCEPTION_1A590226753311DD9E4CCF6156D89593
+#define BOOST_EXCEPTION_1A590226753311DD9E4CCF6156D89593
#include <boost/config.hpp>
#include <boost/exception/exception.hpp>
@@ -13,12 +13,17 @@
#include <boost/exception/detail/shared_ptr.hpp>
#include <boost/assert.hpp>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
diff --git a/contrib/restricted/boost/exception/include/boost/exception/info.hpp b/contrib/restricted/boost/exception/include/boost/exception/info.hpp
index 45873a2f27..3fd6681f5c 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/info.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/info.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_8D22C4CA9CC811DCAA9133D256D89593
-#define UUID_8D22C4CA9CC811DCAA9133D256D89593
+#ifndef BOOST_EXCEPTION_8D22C4CA9CC811DCAA9133D256D89593
+#define BOOST_EXCEPTION_8D22C4CA9CC811DCAA9133D256D89593
#include <boost/config.hpp>
#include <boost/exception/exception.hpp>
@@ -13,12 +13,17 @@
#include <boost/exception/detail/shared_ptr.hpp>
#include <map>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
@@ -26,7 +31,7 @@ boost
template <class Tag,class T>
inline
std::string
- error_info_name( error_info<Tag,T> const & x )
+ error_info_name( error_info<Tag,T> const & )
{
return tag_type_name<Tag>();
}
@@ -52,7 +57,7 @@ boost
exception_detail
{
class
- error_info_container_impl:
+ error_info_container_impl BOOST_FINAL:
public error_info_container
{
public:
@@ -62,7 +67,7 @@ boost
{
}
- ~error_info_container_impl()
+ ~error_info_container_impl() BOOST_NOEXCEPT_OR_NOTHROW
{
}
@@ -81,9 +86,6 @@ boost
if( info_.end()!=i )
{
shared_ptr<error_info_base> const & p = i->second;
-#ifndef BOOST_NO_RTTI
- BOOST_ASSERT( *BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_==*ti.type_ );
-#endif
return p;
}
return shared_ptr<error_info_base>();
diff --git a/contrib/restricted/boost/exception/include/boost/exception/to_string.hpp b/contrib/restricted/boost/exception/include/boost/exception/to_string.hpp
index 51425b10d1..9a2c05794c 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/to_string.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/to_string.hpp
@@ -3,19 +3,24 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_7E48761AD92811DC9011477D56D89593
-#define UUID_7E48761AD92811DC9011477D56D89593
+#ifndef BOOST_EXCEPTION_7E48761AD92811DC9011477D56D89593
+#define BOOST_EXCEPTION_7E48761AD92811DC9011477D56D89593
#include <boost/utility/enable_if.hpp>
#include <boost/exception/detail/is_output_streamable.hpp>
#include <sstream>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
diff --git a/contrib/restricted/boost/exception/include/boost/exception/to_string_stub.hpp b/contrib/restricted/boost/exception/include/boost/exception/to_string_stub.hpp
index 8ff5e47fd6..5fbfba7ec2 100644
--- a/contrib/restricted/boost/exception/include/boost/exception/to_string_stub.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception/to_string_stub.hpp
@@ -3,19 +3,24 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_E788439ED9F011DCB181F25B55D89593
-#define UUID_E788439ED9F011DCB181F25B55D89593
+#ifndef BOOST_EXCEPTION_E788439ED9F011DCB181F25B55D89593
+#define BOOST_EXCEPTION_E788439ED9F011DCB181F25B55D89593
#include <boost/exception/to_string.hpp>
#include <boost/exception/detail/object_hex_dump.hpp>
#include <boost/assert.hpp>
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
+#if __GNUC__*100+__GNUC_MINOR__>301
#pragma GCC system_header
#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#ifdef __clang__
+#pragma clang system_header
+#endif
+#ifdef _MSC_VER
#pragma warning(push,1)
#endif
+#endif
namespace
boost
diff --git a/contrib/restricted/boost/exception/include/boost/exception_ptr.hpp b/contrib/restricted/boost/exception/include/boost/exception_ptr.hpp
index d48cce9dc6..9f8e8b346e 100644
--- a/contrib/restricted/boost/exception/include/boost/exception_ptr.hpp
+++ b/contrib/restricted/boost/exception/include/boost/exception_ptr.hpp
@@ -3,8 +3,8 @@
//Distributed under the Boost Software License, Version 1.0. (See accompanying
//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef UUID_FA5836A2CADA11DC8CD47C8555D89593
-#define UUID_FA5836A2CADA11DC8CD47C8555D89593
+#ifndef BOOST_EXCEPTION_FA5836A2CADA11DC8CD47C8555D89593
+#define BOOST_EXCEPTION_FA5836A2CADA11DC8CD47C8555D89593
#include <boost/exception/detail/exception_ptr.hpp>
diff --git a/contrib/restricted/boost/exception/src/clone_current_exception_non_intrusive.cpp b/contrib/restricted/boost/exception/src/clone_current_exception_non_intrusive.cpp
index 54b056d8d0..932bca8910 100644
--- a/contrib/restricted/boost/exception/src/clone_current_exception_non_intrusive.cpp
+++ b/contrib/restricted/boost/exception/src/clone_current_exception_non_intrusive.cpp
@@ -230,7 +230,7 @@ namespace
{
}
- ~cloned_exception()
+ ~cloned_exception() BOOST_NOEXCEPT_OR_NOTHROW
{
}