diff options
author | Ivan R <iarspider@gmail.com> | 2019-06-14 11:24:47 +0200 |
---|---|---|
committer | Ivan Maidanski <ivmai@mail.ru> | 2019-06-22 00:33:17 +0300 |
commit | 7317fbe93bc39273e252a4f1fad9736646696df3 (patch) | |
tree | ad248324d7dd1561666738780dad609da6ac006d /gc_cpp.cc | |
parent | c00688ae11bc96506a6240122ec53b74bbad6235 (diff) | |
download | bdwgc-7317fbe93bc39273e252a4f1fad9736646696df3.tar.gz |
Fix 'ISO C++17 does not allow dynamic exception spec' clang-8 error
Issue #287 (bdwgc).
Before this patch, clang 8 (and -std=c++1z) fails for gc_cpp.cc.
The error message produced is: ISO C++17 does not allow dynamic
exception specifications.
The "dynamic exception" syntax was declared deprecated in C++11 and
removed in C++17.
* gc_cpp.cc [!_MSC_VER && !__DMC__ && GC_NEW_DELETE_NEED_THROW
&& __cplusplus >= 201703L] (GC_DECL_NEW_THROW): Define to
noexcept(false); add comment.
Diffstat (limited to 'gc_cpp.cc')
-rw-r--r-- | gc_cpp.cc | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -53,7 +53,13 @@ GC_API void GC_CALL GC_throw_bad_alloc() { # endif # ifdef GC_NEW_DELETE_NEED_THROW -# define GC_DECL_NEW_THROW throw(std::bad_alloc) +# if __cplusplus < 201703L +# define GC_DECL_NEW_THROW throw(std::bad_alloc) +# else + // The "dynamic exception" syntax was deprecated in C++11 + // and removed in C++17. +# define GC_DECL_NEW_THROW noexcept(false) +# endif # else # define GC_DECL_NEW_THROW /* empty */ # endif |