From b8bddc438c3544692f2015b82499b7508ff32d3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Thu, 16 Jul 2026 01:15:01 +0200 Subject: [PATCH] Suppress pointless Clang 23 unused template warnings. Similar to what I did in Corrade. --- doc/snippets/SceneGraph.cpp | 9 +++++++++ src/Magnum/Math/FunctionsBatch.h | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/doc/snippets/SceneGraph.cpp b/doc/snippets/SceneGraph.cpp index a0ce1a1cb..42a81ea09 100644 --- a/doc/snippets/SceneGraph.cpp +++ b/doc/snippets/SceneGraph.cpp @@ -146,6 +146,12 @@ class CachingObject: public Object3D, SceneGraph::AbstractFeature3D { namespace { +/* Clang 23 adds -Wunused-template to -Wall and then warns about the unused + constructor. Well, this is a doc snippet, so what am I supposed to do? */ +#ifdef CORRADE_TARGET_CLANG +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-template" +#endif /* [transformation] */ class TransformingFeature: public SceneGraph::AbstractFeature3D { public: @@ -161,6 +167,9 @@ class TransformingFeature: public SceneGraph::AbstractFeature3D { SceneGraph::AbstractTranslationRotation3D& _transformation; }; /* [transformation] */ +#ifdef CORRADE_TARGET_CLANG +#pragma clang diagnostic pop +#endif } diff --git a/src/Magnum/Math/FunctionsBatch.h b/src/Magnum/Math/FunctionsBatch.h index e3a6ec1b7..83bcd3abd 100644 --- a/src/Magnum/Math/FunctionsBatch.h +++ b/src/Magnum/Math/FunctionsBatch.h @@ -49,9 +49,21 @@ namespace Implementation { /** @todo Utility/Algorithms.h has a similar (but different) variant of this, maybe turn that into some public utility once we have one more use case? */ +/* Clang since version 23 includes -Wunused-template in -Wall, and warns for + those declarations. The templates are used inside a decltype() expression + below (and commenting them out obviously makes the test fail to compile) so + this is yet another completely pointless warning that just wastes my + time. */ +#ifdef CORRADE_TARGET_CLANG +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-template" +#endif template::type>::from(std::declval()))> static auto stridedArrayViewTypeFor(T&&) -> typename std::remove_const::type; template static typename std::remove_const::type stridedArrayViewTypeFor(const Containers::ArrayView&); template static typename std::remove_const::type stridedArrayViewTypeFor(const Containers::StridedArrayView1D&); +#ifdef CORRADE_TARGET_CLANG +#pragma clang diagnostic pop +#endif }