[vox-tech] gcc and quieting warnings

Peter Jay Salzman p at dirac.org
Fri Jun 2 08:53:43 PDT 2006


I always use -W -Wall when I compile code.  However, sometimes, I want gcc
to ignore certain instances of a warning.  For example, in something like a
stub function, or a signal callback, or even an API function that doesn't
use all the parameters, like:

   JNIEXPORT void JNICALL
   Java_HelloWorld_print( JNIEnv *env, jobject obj )
   {
      printf("Hello World!\n");
      return;
   }

gcc of course complains about unused parameters.  Of course, I *could*
simply not use -W -Wall, but I don't want to NOT use -W -Wall just
because I haven't gotten around to finishing a stub function.  Besides,
active development is the best time to turn on compiler warnings.

I also assume there's a gcc -Wfno-unused-parameter (or something similar to
this).  But again, I don't want to turn off the check for the entire program
just because of one or two functions.

In splint/lclint/lint, "annotations" are used to shut the checker up for
cases where you don't want it to check a semantic.  I don't know the exact
syntax, but it looks something like:

   FILE *fp;
   if ( (fp = fopen("foo", "r")) != NULL )
      f( fp );
   fclose( fp );  /* @NO NULL CHECK@ */

and splint won't complain about the fact that fp may become uninitialized or
corrupt after passing passing it to f().  The annotations are what make
splint even remotely useful, otherwise I'd be reading warnings all day long.

Does gcc have something similar?  Some way of telling the compiler to ignore
a certain type of warning at a certain point in the code?

I tried doing a search for "annotation" in the behemoth gcc info page, but
no dice.  I wouldn't know what else to call it.

Thanks,
Pete


More information about the vox-tech mailing list