This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: A TINY BUG


> 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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]