Disable shorten-64-to-32 in ws80211_create_on_demand_interface,
which calls NLA_PUT_STRING, which passes the output of strlen to an
int parameter. NLA_PUT_STRING is defined in netlink/attr.h so there's
not much we can do to fix it directly.
Suppress -Wpragmas before suppressing warnings in gcc so that we can
use DIAG_OFF with clang-only warnings.
Change-Id: I1180950edd93c056b8fbfbed164e482024aee90a
Reviewed-on: https://code.wireshark.org/review/12314
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
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;
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)
{
* 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__)