ws80211: Disable shorten-64-to-32.

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>
This commit is contained in:
Gerald Combs 2015-11-30 14:11:22 -08:00
parent d487c8c7e7
commit b8f90de70e
2 changed files with 14 additions and 1 deletions

View File

@ -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)
{

View File

@ -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__)