summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--caputils/ws80211_utils.c3
-rw-r--r--wsutil/ws_diag_control.h12
2 files changed, 14 insertions, 1 deletions
diff --git a/caputils/ws80211_utils.c b/caputils/ws80211_utils.c
index 2db292bf9d..a83f5365a2 100644
--- a/caputils/ws80211_utils.c
+++ b/caputils/ws80211_utils.c
@@ -680,6 +680,8 @@ out_err:
return -1;
}
+/* Needed for NLA_PUT_STRING, which passes strlen as an int */
+DIAG_OFF(shorten-64-to-32)
static int ws80211_create_on_demand_interface(const char *name)
{
int devidx, phyidx, err;
@@ -716,6 +718,7 @@ nla_put_failure:
fprintf(stderr, "building message failed\n");
return 2;
}
+DIAG_ON(shorten-64-to-32)
int ws80211_set_freq(const char *name, int freq, int chan_type)
{
diff --git a/wsutil/ws_diag_control.h b/wsutil/ws_diag_control.h
index be6df0353c..cc0e9eec25 100644
--- a/wsutil/ws_diag_control.h
+++ b/wsutil/ws_diag_control.h
@@ -53,7 +53,17 @@ extern "C" {
* gcc supports "-Wpedantic".
*/
# define DIAG_PRAGMA(x) DIAG_DO_PRAGMA(GCC diagnostic x)
-# define DIAG_OFF(x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x))
+ /*
+ * DIAG_OFF generates
+ *
+ * #pragma GCC diagnostic push
+ * #pragma GCC diagnostic ignored "-Wpragmas"
+ * #pragma GCC diagnostic ignored "-Wx-aka-the-warning-in-question"
+ *
+ * Ignoring "-Wpragmas" lets us turn off diagnostics for clang warnings
+ * that might not be recognized by gcc.
+ */
+# define DIAG_OFF(x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,pragmas)) DIAG_PRAGMA(ignored DIAG_JOINSTR(-W,x))
# define DIAG_ON(x) DIAG_PRAGMA(pop)
# endif
#elif defined(__clang__)