diff options
author | robot-contrib <robot-contrib@yandex-team.com> | 2022-09-21 19:55:27 +0300 |
---|---|---|
committer | robot-contrib <robot-contrib@yandex-team.com> | 2022-09-21 19:55:27 +0300 |
commit | e35fa9e920c824c1f2faef732d637164202ee522 (patch) | |
tree | cb58ea8d9261b33ab962b32be5f30175d5391767 | |
parent | 03e6b001442731630882038574da6a630b3235f0 (diff) | |
download | ydb-e35fa9e920c824c1f2faef732d637164202ee522.tar.gz |
Update contrib/restricted/boost/exception to 1.80.0
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 { } |