On Fri, Apr 25, 2003 at 05:41:20PM +0200, Robert Millan wrote: > Package: gcc-3.2 > Version: 1:3.2.3-0pre9 > Severity: wishlist > > the following code (compiled with -Wall -pedantic) could be > considered "buggy", because it implicitly converts a > signed int to unsigned int when calling "a". if you run it, > it will print the number 2^32-1 instead of -1. > > #include <stdio.h> > int a (unsigned int b) > { > return printf ("%u\n", b); > } > int main () > { > return a (-1); > } > > this can lead to programming bugs. to prevent a programmer from > such, i'd appreciate if gcc said something like: > > warning: implicit conversion from signed to unsigned > > when asked to compile this code. > > maybe it makes sense to warn about conversion from unsigned to > signed too, although having problems with this is unlikely, > since bit overflow only happens with really big numbers.
Is this roughly what you want: [EMAIL PROTECTED]:~% gcc-3.2 -Wall -Wconversion -c c.c c.c: In function `main': c.c:8: warning: passing arg 1 of `a' as unsigned due to prototype c.c:8: warning: negative integer implicitly converted to unsigned type ? It's not part of -Wall because it's too noisy. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer