scs@lokkur.UUCP (Steve Simmons) (06/06/89)
I dunno if this is a bug in gcc or just my misunderstanding of how prototypes work. The following program, odd.c, does not compile with gcc version 1.34 on the UNIX-PC: ------------------------- start odd.c --------------------------------- typedef char deftype ; extern void function( deftype ) ; #ifdef SHOW_ODD void function( b ) deftype b ; #else void function( deftype b ) #endif { (void) printf( "function called.\n" ) ; } main() { deftype parameter = 'i' ; function( parameter ) ; } ------------------------- start odd.c --------------------------------- Trying the compile with `gcc -DSHOW_ODD odd.c' gives the error messages: odd.c: In function function: odd.c:11: argument `b' doesn't match function prototype odd.c:11: a formal parameter type that promotes to `int' odd.c:11: can match only `int' in the prototype Do the same without the -DSHOW_ODD switch and it compiles OK. -- : "Coprophilia is not a disease or an abberation. It is a legitimate : : alternative lifestyle." : : "Hey Phil -- what's for lunch?" -- from "Clonezone" by Mike Baron : Steve Simmons ...sharkey!lokkur!scs scs@lokkur.dexter.mi.us