strange issue reading /dev/null

Jeremy Chadwick koitsu at FreeBSD.org
Thu Aug 7 17:02:36 UTC 2008


On Thu, Aug 07, 2008 at 11:54:10AM -0500, Sean C. Farley wrote:
> On Thu, 7 Aug 2008, Gabor Kovesdan wrote:
>
>> Sean C. Farley ha scritto:
>>> You are testing c which has not been set.  It works OK if you set c
>>> then do the test:
>>>
>>> +       c = fgetc(f);
>>>         if (c != EOF)
>>> -               printf("%c\n", fgetc(f));
>>> +               printf("%c\n", c);
>> Yes, you are right, this is what I meant, I'm just a bit
>> disorganised....
>> Thanks!
>
> You are welcome.
>
> Actually, what I found odd was that the base gcc did not warn about
> using an uninitialized variable using -Wall.

Probably because you didn't use -O.  -Wall includes -Wuninitialized, but
-Wuninitialized only applies if you use optimisation.  gcc won't bail if
you use -Wall without -O, for obvious reasons.  Case in point:

$ gcc -Wall -o x x.c
x.c: In function 'main':
x.c:14: warning: control reaches end of non-void function

$ gcc -Wuninitialized -o x x.c
cc1: warning: -Wuninitialized is not supported without -O

$ gcc -Wall -O -o x x.c
x.c: In function 'main':
x.c:14: warning: control reaches end of non-void function
x.c:12: warning: 'c' is used uninitialized in this function

gcc -- finding new ways every day to drive programmers crazy.  :-)

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-hackers mailing list