> It seems to me that this is doing exactly what is claimed for -Wconversion. > To quote from the gcc man page: > -Wconversion > Warn if a prototype causes a type conversion that > is different from what would happen to the same ar- > gument in the absence of a prototype. ... > > Now in the absence of a prototype for f() the argument true would be > promoted from char/bool to int before being passed to the > function. With the prototype in scope it is not promoted. Different > argument widths so warning delivered.
% cpp test.c # 1 "test7.c" # 1 "<built-in>" # 1 "<command line>" # 1 "test7.c" # 1 "test7.h" 1 # 13 "test7.h" void f(char b); # 2 "test7.c" 2 int main(int argc, char *argv[]) { f((((char)1))); return(0); } void f(char b) { } Am I missing something that says that there isn't the prototype of the same width? Last time I checked my vision, f(char b) was the same as f(char b)... :-/ or am I missing something? I believe that gcc's promoting the char to an int or to some other non-1 byte width data type... but I'm not seeing how, where, or why. -sc -- Sean Chittenden _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"