From b1527216b61003e7e08027a3710fd5a731d747cd Mon Sep 17 00:00:00 2001
From: David Li
Date: Thu, 27 Aug 2026 11:04:15 +0900
Subject: [PATCH 1/2] refactor(c/driver/framework): ignore -Wunused-template
Closes #4726.
---
c/driver/framework/status.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/c/driver/framework/status.h b/c/driver/framework/status.h
index d42535e5ac..a4c8180d47 100644
--- a/c/driver/framework/status.h
+++ b/c/driver/framework/status.h
@@ -129,6 +129,8 @@ class Status {
// Helpers to create statuses with known codes
static Status Ok() { return Status(); }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-template"
#define STATUS_CTOR(NAME, CODE) \
template \
static Status NAME(Args&&... args) { \
@@ -146,6 +148,7 @@ class Status {
STATUS_CTOR(Unknown, UNKNOWN)
#undef STATUS_CTOR
+#pragma clang diagnostic pop
private:
/// \brief Private Status implementation details
@@ -305,6 +308,8 @@ namespace adbc::driver::status {
inline driver::Status Ok() { return driver::Status(); }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-template"
#define STATUS_CTOR(NAME, CODE) \
template \
static Status NAME(Args&&... args) { \
@@ -323,12 +328,15 @@ STATUS_CTOR(NotImplemented, NOT_IMPLEMENTED)
STATUS_CTOR(Unknown, UNKNOWN)
#undef STATUS_CTOR
+#pragma clang diagnostic pop
} // namespace adbc::driver::status
#if defined(ADBC_FRAMEWORK_USE_FMT)
namespace adbc::driver::status::fmt {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-template"
#define STATUS_CTOR(NAME, CODE) \
template \
static Status NAME(std::string_view format_string, Args&&... args) { \
@@ -346,6 +354,7 @@ STATUS_CTOR(NotImplemented, NOT_IMPLEMENTED)
STATUS_CTOR(Unknown, UNKNOWN)
#undef STATUS_CTOR
+#pragma clang diagnostic pop
} // namespace adbc::driver::status::fmt
#endif
From c355a11a96edd3b80ab9b4b66c8dbbfd0a396291 Mon Sep 17 00:00:00 2001
From: David Li
Date: Thu, 27 Aug 2026 11:21:55 +0900
Subject: [PATCH 2/2] try this
---
c/driver/framework/status.h | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/c/driver/framework/status.h b/c/driver/framework/status.h
index a4c8180d47..cef81ac797 100644
--- a/c/driver/framework/status.h
+++ b/c/driver/framework/status.h
@@ -35,6 +35,11 @@
/// \file status.h
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunused-template"
+#endif
+
namespace adbc::driver {
/// \brief A wrapper around AdbcStatusCode + AdbcError.
@@ -129,8 +134,6 @@ class Status {
// Helpers to create statuses with known codes
static Status Ok() { return Status(); }
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-template"
#define STATUS_CTOR(NAME, CODE) \
template \
static Status NAME(Args&&... args) { \
@@ -148,7 +151,6 @@ class Status {
STATUS_CTOR(Unknown, UNKNOWN)
#undef STATUS_CTOR
-#pragma clang diagnostic pop
private:
/// \brief Private Status implementation details
@@ -308,8 +310,6 @@ namespace adbc::driver::status {
inline driver::Status Ok() { return driver::Status(); }
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-template"
#define STATUS_CTOR(NAME, CODE) \
template \
static Status NAME(Args&&... args) { \
@@ -328,15 +328,12 @@ STATUS_CTOR(NotImplemented, NOT_IMPLEMENTED)
STATUS_CTOR(Unknown, UNKNOWN)
#undef STATUS_CTOR
-#pragma clang diagnostic pop
} // namespace adbc::driver::status
#if defined(ADBC_FRAMEWORK_USE_FMT)
namespace adbc::driver::status::fmt {
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-template"
#define STATUS_CTOR(NAME, CODE) \
template \
static Status NAME(std::string_view format_string, Args&&... args) { \
@@ -354,7 +351,6 @@ STATUS_CTOR(NotImplemented, NOT_IMPLEMENTED)
STATUS_CTOR(Unknown, UNKNOWN)
#undef STATUS_CTOR
-#pragma clang diagnostic pop
} // namespace adbc::driver::status::fmt
#endif
@@ -384,3 +380,7 @@ STATUS_CTOR(Unknown, UNKNOWN)
#define UNWRAP_NANOARROW(ERROR, CODE, RHS) \
UNWRAP_NANOARROW_IMPL(UNWRAP_RESULT_NAME(driver_errno_na, RESULT_NAME_SUFFIX), ERROR, \
CODE, RHS)
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif