When building today's (2005-01-14) gcc-trunk for different (cross-) targets on FC3, I am seeing many (several 10ths) warnings of this kind: ... gcc -c -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -fno-common -DHAVE_CONFIG_H -I. -Icp -I../../gcc-4.0.0/gcc -I../../gcc-4.0.0/gcc/cp -I../../gcc-4.0.0/gcc/../include -I../../gcc-4.0.0/gcc/../libcpp/include ../../gcc-4.0.0/gcc/cp/call.c -o cp/call.o ../../gcc-4.0.0/gcc/cp/call.c: In function `build_new_op': ../../gcc-4.0.0/gcc/cp/call.c:3765: warning: unknown conversion type character `q' in format ../../gcc-4.0.0/gcc/cp/call.c:3765: warning: too many arguments for format ../../gcc-4.0.0/gcc/cp/call.c: In function `enforce_access': ../../gcc-4.0.0/gcc/cp/call.c:4068: warning: unknown conversion type character `q' in format ../../gcc-4.0.0/gcc/cp/call.c:4068: warning: too many arguments for format ../../gcc-4.0.0/gcc/cp/call.c:4070: warning: unknown conversion type character `q' in format ../../gcc-4.0.0/gcc/cp/call.c:4070: warning: too many arguments for format ../../gcc-4.0.0/gcc/cp/call.c:4072: warning: unknown conversion type character `q' in format ../../gcc-4.0.0/gcc/cp/call.c:4072: warning: too many arguments for format ... In my understanding, this is the native gcc (gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)) complaining about GCC-4.0.0 using "%q" as a format string. I haven't tried, but IMO this probably results into GCC/c++ using non-functional format strings.
Invalid, the warnings were correct for compiling 3.4.x but are not correct when compiling 4.0.0 but you have to compile with 4.0.0 to get correct warnings for this case.
(In reply to comment #1) > Invalid, the warnings were correct for compiling 3.4.x but are not correct > when compiling 4.0.0 but you > have to compile with 4.0.0 to get correct warnings for this case. Are you trying to say * 3.4.x is emitting bogus warnings? Then this is a gcc-3.4.x bug. * building 4.0.0 requires a native gcc-4.0.0? This would qualify as a serious GCC-4.0 regression. I both cases this is a bug.
No what I am saying if you want accurate warnings for building 4.0.0, you need 4.0.0 but since we don't build cross compilers with -Werror for a reason. Basically we added more formating in 4.0.0 which are not supported at all in 3.4.0 so warning about them in 3.4.0 is useful as you know that you messed up when back porting a patch to the 3.4.0 when compiling natively. If you use an earlier version of gcc than 3.4.0, you don't get this warnings at all. The only way to fix this would depend on using the formatting warnings only for that certain version of gcc (I would assume that the formatting warnings are useful even if we don't support them in 3.4.0 because you can reconize what version you using to cross compile with). And yes you should be really using the same version to cross compile with as then it does not get confussing when something gets miscompiled (which has been known to happen in the past).