diff --git a/configure.ac b/configure.ac index 2ca6964c7..c303deb75 100644 --- a/configure.ac +++ b/configure.ac @@ -943,6 +943,7 @@ RB_HELP_STRING([--enable-every-warning], [Enable warning discovery (-Weverything RB_MAYBE_CXXFLAG([-Wno-extra-semi-stmt], charybdis_cv_c_gcc_w_no_extra_semi_stmt) RB_MAYBE_CXXFLAG([-Wno-weak-vtables], charybdis_cv_c_gcc_w_no_weak_vtables) RB_MAYBE_CXXFLAG([-Wno-global-constructors], charybdis_cv_c_gcc_w_no_global_constructors) + RB_MAYBE_CXXFLAG([-Wno-dtor-name], charybdis_cv_c_gcc_w_no_dtor_name) dnl Ignored with issue low priority RB_MAYBE_CXXFLAG([-Wno-old-style-cast], charybdis_cv_c_gcc_w_no_old_style_cast) diff --git a/include/ircd/buffer/unique_buffer.h b/include/ircd/buffer/unique_buffer.h index 37c9bf456..a8f437e1e 100644 --- a/include/ircd/buffer/unique_buffer.h +++ b/include/ircd/buffer/unique_buffer.h @@ -98,7 +98,7 @@ ircd::buffer::unique_buffer::operator=(unique_buffer &&other) template inline -ircd::buffer::unique_buffer::~unique_buffer() +ircd::buffer::unique_buffer::~unique_buffer() noexcept { const auto ptr(std::get<0>(*this)); diff --git a/include/ircd/ctx/concurrent.h b/include/ircd/ctx/concurrent.h index d7020f9fc..fc4e85343 100644 --- a/include/ircd/ctx/concurrent.h +++ b/include/ircd/ctx/concurrent.h @@ -45,7 +45,7 @@ ircd::ctx::concurrent::concurrent(pool &p, {} template -ircd::ctx::concurrent::~concurrent() +ircd::ctx::concurrent::~concurrent() noexcept { const uninterruptible::nothrow ui; diff --git a/include/ircd/ctx/future.h b/include/ircd/ctx/future.h index 9b9f60e37..263a22c8b 100644 --- a/include/ircd/ctx/future.h +++ b/include/ircd/ctx/future.h @@ -98,7 +98,7 @@ struct ircd::ctx::scoped_future template inline -ircd::ctx::scoped_future::~scoped_future() +ircd::ctx::scoped_future::~scoped_future() noexcept { if(std::uncaught_exceptions() || !this->valid()) diff --git a/include/ircd/ctx/queue.h b/include/ircd/ctx/queue.h index de37c68dd..468b1e939 100644 --- a/include/ircd/ctx/queue.h +++ b/include/ircd/ctx/queue.h @@ -62,7 +62,7 @@ ircd::ctx::queue::queue(A&& alloc) template -ircd::ctx::queue::~queue() +ircd::ctx::queue::~queue() noexcept { assert(q.empty()); diff --git a/include/ircd/ctx/unlock_guard.h b/include/ircd/ctx/unlock_guard.h index 3c7b2f28c..953a0bae4 100644 --- a/include/ircd/ctx/unlock_guard.h +++ b/include/ircd/ctx/unlock_guard.h @@ -41,7 +41,7 @@ ircd::ctx::unlock_guard::unlock_guard(lockable &l) } template -ircd::ctx::unlock_guard::~unlock_guard() +ircd::ctx::unlock_guard::~unlock_guard() noexcept { l.lock(); diff --git a/include/ircd/ctx/upgrade_lock.h b/include/ircd/ctx/upgrade_lock.h index 4d66b05a1..bf43bdbeb 100644 --- a/include/ircd/ctx/upgrade_lock.h +++ b/include/ircd/ctx/upgrade_lock.h @@ -120,7 +120,7 @@ noexcept template inline -ircd::ctx::upgrade_lock::~upgrade_lock() +ircd::ctx::upgrade_lock::~upgrade_lock() noexcept { if(owns_lock()) diff --git a/include/ircd/ctx/view.h b/include/ircd/ctx/view.h index 28948a0ac..79dd47915 100644 --- a/include/ircd/ctx/view.h +++ b/include/ircd/ctx/view.h @@ -13,12 +13,8 @@ namespace ircd::ctx { - template - class view; - - template - using shared_view = view; + template class view; + template using shared_view = view; } /// Device for a context to share data on its stack with others while yielding @@ -57,13 +53,18 @@ class ircd::ctx::view void operator()(T &); view() = default; - ~view() noexcept - { - assert(!waiting); - assert(!wanting); - } + ~view() noexcept; }; +template +ircd::ctx::view::~view() +noexcept +{ + assert(!waiting); + assert(!wanting); +} + template void @@ -163,7 +164,7 @@ ircd::ctx::view::wait_until(lock &l, template -inline bool +bool ircd::ctx::view::ready() const { diff --git a/include/ircd/prof/scope_cycles.h b/include/ircd/prof/scope_cycles.h index 43933dbcc..d8bf673ba 100644 --- a/include/ircd/prof/scope_cycles.h +++ b/include/ircd/prof/scope_cycles.h @@ -74,7 +74,7 @@ inline //TODO: ??? extern inline __attribute__((always_inline, gnu_inline, artificial)) #endif -ircd::prof::scope_cycles::~scope_cycles() +ircd::prof::scope_cycles::~scope_cycles() noexcept { if constexpr(fenced) diff --git a/include/ircd/spirit/generate.h b/include/ircd/spirit/generate.h index 2276c95d6..df4e4c0af 100644 --- a/include/ircd/spirit/generate.h +++ b/include/ircd/spirit/generate.h @@ -266,7 +266,7 @@ boost::spirit::karma::detail::enable_buffering::enable_ } inline -boost::spirit::karma::detail::enable_buffering::~enable_buffering() +boost::spirit::karma::detail::enable_buffering::~enable_buffering() noexcept { assert(ircd::spirit::generator_state == &state); diff --git a/include/ircd/util/instance_list.h b/include/ircd/util/instance_list.h index f89d9235b..5931fd537 100644 --- a/include/ircd/util/instance_list.h +++ b/include/ircd/util/instance_list.h @@ -121,7 +121,7 @@ ircd::util::instance_list::operator=(const instance_list &other) } template -ircd::util::instance_list::~instance_list() +ircd::util::instance_list::~instance_list() noexcept { assert(it != end(list)); diff --git a/include/ircd/util/instance_multimap.h b/include/ircd/util/instance_multimap.h index 4b16743a7..90a11b70b 100644 --- a/include/ircd/util/instance_multimap.h +++ b/include/ircd/util/instance_multimap.h @@ -120,7 +120,7 @@ ircd::util::instance_multimap::operator=(const instance_multimap &other template -ircd::util::instance_multimap::~instance_multimap() +ircd::util::instance_multimap::~instance_multimap() noexcept { if(it != end(map)) diff --git a/include/ircd/util/scope_count.h b/include/ircd/util/scope_count.h index cbcb9827e..da38f70eb 100644 --- a/include/ircd/util/scope_count.h +++ b/include/ircd/util/scope_count.h @@ -43,7 +43,7 @@ ircd::util::scope_count::scope_count(T &count, } template -ircd::util::scope_count::~scope_count() +ircd::util::scope_count::~scope_count() noexcept { assert(count); diff --git a/include/ircd/util/scope_restore.h b/include/ircd/util/scope_restore.h index 2833b8819..88df882ff 100644 --- a/include/ircd/util/scope_restore.h +++ b/include/ircd/util/scope_restore.h @@ -62,7 +62,7 @@ ircd::util::scope_restore::scope_restore(T &restore, } template -ircd::util::scope_restore::~scope_restore() +ircd::util::scope_restore::~scope_restore() noexcept { assert(restore);