Wireshark-dev: Re: [Wireshark-dev] GCC Diagnostic Pragmas

From: Jakub Zawadzki <darkjames-ws@xxxxxxxxxxxx>
Date: Sun, 10 Nov 2013 12:34:24 +0100
Hi Alexis,

On Sun, Nov 10, 2013 at 11:35:02AM +0100, Alexis La Goutte wrote:
> On Sat, Nov 9, 2013 at 1:39 PM, Jakub Zawadzki <darkjames-ws@xxxxxxxxxxxx> wrote:
> > In few dissectors we're manually disabling some kind of warnings, like
> > in packet-parlay.c
> >
> > #ifdef _MSC_VER
> > /* disable warning: "unreference local variable" */
> > #pragma warning(disable:4101)
> > #endif
> >
> > It's possible to do the same with GCC (4.6) using diagnostics pragmas[1].
> >
> > Googling around found test:
> >
> > #if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 6 ||
> > __APPLE_CC__))
> > # pragma GCC diagnostic ignored "-Wunused"
> > #endif
> >
> > which seems to be not working with my clang-3.3.
> >
> > qemu does test during configure, trying to compile some test program with
> > -Werror.
> >
> > I think we could do the same, test program can looks like this:
> > #v+
> >         #pragma GCC diagnostic push
> >         #pragma GCC diagnostic ignored "-Wunused"
> >         #pragma GCC diagnostic pop
> >
> >         int main(void) {
> >             return 0;
> >         }
> > #v-
> >
> > OK?
> >
> > [1] http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
> 
> No problem for me !
> There is some pragma stuff in epan/wsgcrypt.h (i not sure if the hack for
> Clang works).

Nice, we're already using them, thanks for the hint ;-)