summaryrefslogtreecommitdiffhomepage
path: root/compat/borrowed-ptr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'compat/borrowed-ptr.cpp')
-rw-r--r--compat/borrowed-ptr.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/compat/borrowed-ptr.cpp b/compat/borrowed-ptr.cpp
index 9039a8db..c8582bfc 100644
--- a/compat/borrowed-ptr.cpp
+++ b/compat/borrowed-ptr.cpp
@@ -3,9 +3,12 @@
namespace floormat::detail_borrowed_ptr {
-#ifdef __GNUG__
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdelete-abstract-non-virtual-dtor"
+#elif defined __GNUG__
#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdelete-abstract-non-virtual-dtor"
+#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor"
#endif
void control_block_::decrement(control_block_*& blk) noexcept
{
@@ -20,22 +23,10 @@ void control_block_::decrement(control_block_*& blk) noexcept
blk = nullptr;
}
-#ifdef __GNUG__
+#ifdef __clang__
+#pragma clang diagnostic pop
+#elif defined __GNUG__
#pragma GCC diagnostic pop
#endif
} // namespace floormat::detail_borrowed_ptr
-
-namespace {
-struct Foo {};
-struct Bar : Foo {};
-struct Baz {};
-} // namespace
-
-namespace floormat {
-
-template struct detail_borrowed_ptr::control_block_impl<Foo>;
-template class bptr<Foo>;
-template bptr<Bar> static_pointer_cast(const bptr<Foo>&) noexcept;
-
-} // namespace floormat