l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
December 2: Social gathering
Next Installfest:
TBD
Latest News:
Nov. 18: Club officer elections
Page last updated:
2006 Jun 04 06:30

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] gcc and quieting warnings
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] gcc and quieting warnings



On Friday 02 June 2006 10:53, Peter Jay Salzman wrote:
> 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.

What version of G++ are you using?

[bloom@cat-in-the-hat ~]$ g++ --version
g++ (GCC) 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.

[bloom@cat-in-the-hat ~]$ cat test.cpp
void foo(int a){

}

int main(){
   foo(1);
   return 0;
}
[bloom@cat-in-the-hat ~]$ g++ -Wall -o test test.cpp
[bloom@cat-in-the-hat ~]$ g++ -Wall -Wunused -o test test.cpp
[bloom@cat-in-the-hat ~]$ g++ -Wall -Wunused-parameter -o test test.cpp
test.cpp:1: warning: unused parameter ‘a’

It seems that in g++ 4.0 -Wall implies -Wunused, which in turn 
implies -Wunused-variable -Wunused-label -Wunused-function, but does 
not imply -Wunused-parameter.

--Ken

-- 
I usually have a GPG digital signature included as an attachment.
See http://www.gnupg.org/ for info about these digital signatures.

Attachment: pgp00002.pgp
Description: PGP signature

_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech


LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Sunset Systems
Who graciously hosts our website & mailing lists!