A TINY BUG

Marty Leisner leisner@sdsp.mc.xerox.com
Mon Oct 6 14:27:00 GMT 1997


I agree, but -Wformat should even catch this (without stdio.h)

Or use -Wall...

> > I have found that the following bad code gives "exception" at run
> > time instead of error message at compilation time (b18 Win95):
> > 
> > #include <stdio.h>
> > main(){
> >         printf("%s\n",sizeof(long));
> > }
> 
> No compiler will detect this error at compile-time. The prototype for
> printf is (char *, ...); that is, no specific type information for
> anything except the first parameter. A compiler would have to read the
> first parameter to figure out the expected types for the remaining args,
> and much of the time that first parameter is dynamically computed at
> runtime instead of being a static string. There are a couple of
> lint-like programs that will catch this error with a
> compile-time-evaluatable format string, but that's the best you can do.
> 
> Summary: learn more about the language before whining about compiler
> errors. This is a programmer bug, not a compiler bug.
> 
> Jason Zions
> Softway Systems Inc., makers of OpenNT
> http://www.opennt.com
> 
> 


-- 
marty
leisner@sdsp.mc.xerox.com  
The Feynman problem solving Algorithm
        1) Write down the problem
        2) Think real hard
        3) Write down the answer
                Murray Gel-mann in the NY Times




-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list