Commit Graph

461 Commits

Author SHA1 Message Date
0016f52fba asan 2020-08-12 16:03:51 -07:00
7e8f0cd9bb copy_exception/make_exception_ptr implemented via wrapexcept rather than throw/catch 2020-08-11 19:40:30 -07:00
330008445c make_exception_ptr 2020-07-06 17:09:06 -07:00
63b57749a2 Mark error_info_container_impl final. (#27)
This should allow for better code optimization and also silence
compiler warnings about non-virtual destructor.
boost-1.74.0.beta1 boost-1.74.0
2020-04-30 15:05:51 -07:00
865cb399d5 Change __CODEGEARC__ to BOOST_CODEGEARC, which is defined in Boost config for the Embarcadero non-clang-based compilers. (#32) 2020-04-30 14:26:21 -07:00
ff0bcc1d85 Added #pragma clang system_header boost-1.73.0 2020-04-06 18:23:52 -07:00
c07417af68 Merge branch 'develop' boost-1.73.0.beta1 2020-02-17 18:58:02 -08:00
9197b6a880 Updated copyright message 2020-02-17 18:57:47 -08:00
012921be43 Merge branch 'develop' 2020-02-10 09:52:27 -08:00
0353b975f8 Fix MSVC-11 compilation error. (#30)
The compiler supports std::exception_ptr but does not support uniform
initialization syntax.

Co-authored-by: Emil Dotchevski <emildotchevski@gmail.com>
2020-02-09 21:01:10 -08:00
bd1a6ee1bb Removed broken appveyor configuration 2020-02-09 20:56:10 -08:00
93692697ef Fixing MSVC-11 compilation error, thanks Lastique 2020-02-09 16:52:49 -08:00
120b35fde2 AppVeyor 2020-02-09 16:41:30 -08:00
a5a8e865c0 Merge branch 'develop' 2020-01-31 12:02:34 -08:00
81e9a137eb Added testing for CXXSTD 98, 03 2020-01-29 14:05:11 -08:00
3f6ff1a8bf std_exception_ptr_wrapper 2020-01-29 14:02:40 -08:00
af98afb3d1 Attempt to solve issue #10 (#24)
* Attempt to solve issue #10

In boost::current_exception(), after all supported types of exception have
been checked for, a boost::unknown_exception is stored in the
boost::exception_ptr as a last resort to signal that an exception was indeed
stored, but that the actual type and value of the exception was lost.

Now, in case C++11 std::current_exception() is supported, the
std::exception_ptr result of calling std::current_exception() is what
gets stored inside the boost::exception_ptr. Later, inside
boost::rethrow_exception, the std::exception_ptr is retrieved from
the boost::exception_ptr and whatever exception it stores is thrown via
std::rethrow_exception().

The main benefit is than now any exception thrown via plain 'throw'
can be trasnported via boost::exception_ptr. Before this change it was
required that the throw site either used boost::enable_current_exception()
or boost::throw_exception() or threw an exception type inheriting from
boost::exception, which was impossible for third party software
that does not use Boost.Exception.

The detection of std::current_exception() is currently done via config macro
BOOST_NO_CXX11_NOEXCEPT, assuming that if 'noexcept' is supported then
std::exception_ptr is also supported. A better solution would require a new
dedicated macro in Boost.Config.

* Detect support for std::current_exception() via config macro BOOST_NO_CXX11_HDR_EXCEPTION

The temporary solution via BOOST_NO_CXX11_NOEXCEPT was an ugly hack
that is no longer necessary now that Boost.Config has
BOOST_NO_CXX11_HDR_EXCEPTION (pending merge to develop).

* Attempt to solve issue #10

In boost::current_exception(), after all supported types of exception have
been checked for, a boost::unknown_exception is stored in the
boost::exception_ptr as a last resort to signal that an exception was indeed
stored, but that the actual type and value of the exception was lost.

Now, in case C++11 std::current_exception() is supported, the
std::exception_ptr result of calling std::current_exception() is what
gets stored inside the boost::exception_ptr. Later, inside
boost::rethrow_exception, the std::exception_ptr is retrieved from
the boost::exception_ptr and whatever exception it stores is thrown via
std::rethrow_exception().

The main benefit is than now any exception thrown via plain 'throw'
can be trasnported via boost::exception_ptr. Before this change it was
required that the throw site either used boost::enable_current_exception()
or boost::throw_exception() or threw an exception type inheriting from
boost::exception, which was impossible for third party software
that does not use Boost.Exception.

The detection of std::current_exception() is currently done via config macro
BOOST_NO_CXX11_NOEXCEPT, assuming that if 'noexcept' is supported then
std::exception_ptr is also supported. A better solution would require a new
dedicated macro in Boost.Config.

* Detect support for std::current_exception() via config macro BOOST_NO_CXX11_HDR_EXCEPTION

The temporary solution via BOOST_NO_CXX11_NOEXCEPT was an ugly hack
that is no longer necessary now that Boost.Config has
BOOST_NO_CXX11_HDR_EXCEPTION (pending merge to develop).

* Document detection of C++11 std::current_exception through BOOST_NO_CXX11_HDR_EXCEPTION

* Added dist: trusty for Travis config, as recommended by pdimov in issue #10

* Stupid gcc 4.7 and 4.8 are confused initializing a reference with braces, using equal sign hoping it works (tested similar code on godbolt).
2020-01-29 13:41:48 -08:00
f68cd7b2d4 More g++ testing on travis 2020-01-28 20:11:17 -08:00
e8c57591a3 Missing #include <stdlib.h> in tests 2020-01-28 16:39:28 -08:00
c4e5f44e94 travis 2020-01-28 13:57:53 -08:00
1f90ecc324 travis 2020-01-28 13:18:22 -08:00
820338c36b Merge branch 'develop' of https://github.com/boostorg/exception into develop 2020-01-28 13:05:06 -08:00
9c8f2b6400 More travis testing 2020-01-28 13:04:55 -08:00
6bc76ee326 dist: trusty 2020-01-26 19:33:31 -08:00
0036e62dce fixing ABI mismatch error 2019-12-24 20:15:08 -08:00
9d8f16f4e6 Merge branch 'develop' 2019-12-21 19:14:58 -08:00
87f0473396 Fixed link error in no_exceptions_test.cpp 2019-12-21 19:14:44 -08:00
d0963a7cf6 Added missing #include in cloning_test.cpp 2019-12-21 14:27:14 -08:00
80ad850f3a Merge branch 'develop' 2019-12-21 14:18:03 -08:00
8e61e8e9fd #include guards prefixed with BOOST_EXCEPTION_ 2019-12-21 14:15:17 -08:00
c44bdae6ac Merge branch 'develop' boost-1.72.0.beta1 boost-1.72.0 boost-1.71.0.beta1 boost-1.71.0 2019-06-06 15:22:51 -07:00
bfddc104c6 Merge remote-tracking branch 'origin/develop' 2019-06-06 15:18:09 -07:00
f1af13409d BOOST_NO_EXCEPTIONS tests updated for [noreturn] 2019-06-06 15:09:27 -07:00
2aaa7975b6 Merge pull request #22 from Oberon00/patch-1
Guard diagnostic_information against null what()
2019-03-16 22:39:26 -07:00
90694bc3b9 Guard diagnostic_information against null what() 2019-03-11 17:56:55 +01:00
b63736ac89 Merge pull request #20 from Mike-Devel/min_cmake
[CMake] Fix PUBLIC/INTERFACE mixup
2019-03-03 09:27:13 -08:00
1a7ac9174a Merge pull request #11 from danieljames/fix-visual-c-7.1
Fully qualify error_info_base for Visual C++ 7.1
2019-03-02 22:14:27 -08:00
ef4f541a8a [CMake] Fix PUBLIC/INTERFACE left over. 2019-03-03 07:13:47 +01:00
688f6238f1 Merge pull request #17 from Mike-Devel/min_cmake
[CMake] Add minimal cmake file
2019-03-02 22:13:03 -08:00
5025e2ca18 Merge pull request #18 from apolukhin/antoshkka/exception-type-from-ptr
Extract exception type name from std::exception_ptr on libstdc++
2019-03-02 22:10:00 -08:00
457330f286 Merge pull request #19 from jlepola/throw-noexcept
Replaced throw() with BOOST_NOEXCEPT_OR_NOTHROW
2019-03-02 22:08:46 -08:00
8d19f99e43 [CMake] Fix copyright date 2019-03-02 14:24:52 +01:00
f4e1a11e6b [CMake] Treat Boost.Exception as header only 2019-03-02 14:20:29 +01:00
607268dd8e Replaced throw() with BOOST_NOEXCEPT_OR_NOTHROW
With throw(), Visual Studio 2017 emitted a warning "C26439 SPECIAL_NOEXCEPT". Reproducible at least if code analysis was set to level: "Microsoft Native Recommended Rules".

https://docs.microsoft.com/en-us/visualstudio/code-quality/c26439?view=vs-2017
2019-01-28 09:48:53 +02:00
386f5507cb extract exception type name from std::exception_ptr on libstdc++ 2019-01-15 23:55:37 +03:00
e3590d89af [CMake] Add minimal cmake file
Generate cmake target that builds the library and which can
be used by other libraries to express their dependency on
this library and retrieve any configuration information
such as the include directory, binary to link to,
transitive dependencies, necessary compiler options or the
required c++ standards level.
2019-01-04 19:06:57 +01:00
c87b9c55b1 Fix unit tests that did not return report_errors() boost-1.70.0.beta1 boost-1.70.0 boost-1.69.0-beta1 boost-1.69.0 2018-09-24 19:46:13 -04:00
de6cef966b Fix unit tests that did not return report_errors() 2018-09-17 07:32:49 -04:00
2a2557b903 Fully qualify error_info_base for Visual C++ 7.1
Test are failing on Visual C++ 7.1, I think because it's not importing
error_info_base into the class' namespace, so hopefully this will fix it. I
don't have access to the compiler, so I'm not sure.
2018-04-07 15:01:58 +01:00
50899b8f1b added bug_11874_test.cpp 2017-07-05 16:27:16 -07:00