This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/49560] New: -fexec-charset=IBM-1047 makes -Wformat report incorrect warnings
- From: "jphartmann at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 28 Jun 2011 08:17:36 +0000
- Subject: [Bug c/49560] New: -fexec-charset=IBM-1047 makes -Wformat report incorrect warnings
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49560
Summary: -fexec-charset=IBM-1047 makes -Wformat report
incorrect warnings
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: jphartmann@gmail.com
Created attachment 24612
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24612
Preprocessor output from printf
It looks as if the translated form of the format string is used. Removing the
substitution parameter clears the warning. ASCII % (0x37) is not likely to be
in any string that is converted to EBCDIC.
[/home/john/src/cmsh/390] CFLAGS=-Wall make hlo
cc -Wall hlo.c -o hlo
[/home/john/src/cmsh/390] rm hlo
[/home/john/src/cmsh/390] CFLAGS="-fexec-charset=IBM-1047 -Wall" make hlo
cc -fexec-charset=IBM-1047 -Wall hlo.c -o hlo
hlo.c: In function 'main':
hlo.c:17: warning: spurious trailing '%' in format
hlo.c:17: warning: too many arguments for format
[/home/john/src/cmsh/390] gcc --version
gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2)
Don't know how RedHat configured the compiler.
And also with a 4.6.0 I compiled from unmodified source.
--with-gnu-as --with-gnu-ld --prefix=/home/john/pool/360/root/usr
--with-sysroot=/home/john/pool/360/root --target=s390x-ibm-linux
--enable-languages=c --with-gmp=/usr --with-mpfr=/usr --with-mpc=/usr
--disable-libgomp --disable-threads --disable-tls --disable-libada
--disable-libssp --disable-shared --without-headers --disable-lto --disable-nls
[/home/john/src/cmsh/390] uname -a
Linux bigserv 2.6.34.8-68.fc13.x86_64 #1 SMP Thu Feb 17 15:03:58 UTC 2011
x86_64 x86_64 x86_64 GNU/Linux