From 5d71d848a7efcf281316b2637cf551d9d83fb461 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Wed, 20 Jul 2022 12:03:10 -0700 Subject: [PATCH] ircd::util: Fix undefined-var-template linkage related warning. --- include/ircd/cl/work.h | 11 +++++++++++ include/ircd/run.h | 11 +++++++++++ include/ircd/util/instance_list.h | 21 --------------------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/include/ircd/cl/work.h b/include/ircd/cl/work.h index ab5dd6382..3d849d44b 100644 --- a/include/ircd/cl/work.h +++ b/include/ircd/cl/work.h @@ -41,6 +41,17 @@ struct ircd::cl::work ~work() noexcept; }; +namespace ircd +{ + template<> + decltype(cl::work::allocator) + instance_list::allocator; + + template<> + decltype(cl::work::list) + instance_list::list; +} + /// Queue profiling convenience struct ircd::cl::work::prof :std::array diff --git a/include/ircd/run.h b/include/ircd/run.h index 02391646d..7f10f16d0 100644 --- a/include/ircd/run.h +++ b/include/ircd/run.h @@ -131,6 +131,17 @@ struct ircd::run::changed static void wait(const std::initializer_list &); }; +namespace ircd +{ + template<> + decltype(run::changed::allocator) + instance_list::allocator; + + template<> + decltype(run::changed::list) + instance_list::list; +} + /// Tool to yield a context until the run::level is RUN or QUIT. Once either is /// satisfied (or if already satisfied) the run::level is checked to be RUN /// otherwise an exception is thrown. diff --git a/include/ircd/util/instance_list.h b/include/ircd/util/instance_list.h index 5931fd537..853ea5157 100644 --- a/include/ircd/util/instance_list.h +++ b/include/ircd/util/instance_list.h @@ -54,10 +54,6 @@ struct ircd::util::instance_list ~instance_list() noexcept; }; -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundefined-var-template" -#endif __clang__ template ircd::util::instance_list::instance_list() { @@ -66,14 +62,7 @@ ircd::util::instance_list::instance_list() it = list.emplace(end(list), static_cast(this)); list.get_allocator().s->next = nullptr; } -#ifdef __clang__ -#pragma clang diagnostic pop -#endif __clang__ -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundefined-var-template" -#endif __clang__ template ircd::util::instance_list::instance_list(instance_list &&other) noexcept @@ -83,14 +72,7 @@ noexcept it = list.emplace(end(list), static_cast(this)); list.get_allocator().s->next = nullptr; } -#ifdef __clang__ -#pragma clang diagnostic pop -#endif __clang__ -#ifdef __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wundefined-var-template" -#endif __clang__ template ircd::util::instance_list::instance_list(const instance_list &other) { @@ -99,9 +81,6 @@ ircd::util::instance_list::instance_list(const instance_list &other) it = list.emplace(end(list), static_cast(this)); list.get_allocator().s->next = nullptr; } -#ifdef __clang__ -#pragma clang diagnostic pop -#endif __clang__ template ircd::util::instance_list &