[Bug middle-end/18785] [4.0 Regression] isdigit builtin function fails with EBCDIC character sets
darcypj at us dot ibm dot com
gcc-bugzilla@gcc.gnu.org
Tue Dec 7 15:21:00 GMT 2004
------- Additional Comments From darcypj at us dot ibm dot com 2004-12-07 15:21 -------
Wow - curiously, I don't have a problem with it, but that is because when I
added the -fexec-charset option, I no longer got the branch to puts().
Examples follow:
===================================
If I compile with the following options, I see the puts:
-c print.c -fverbose-asm -Wa,-aldhs=print.lst -gdwarf-2
4:print.c **** printf("Hello world\n");
47 .loc 1 4 0
48 001c C0200000 larl %r2,.LC0 #,
48 0000
49 0022 C0E50000 brasl %r14,puts #,
49 0000
=======================
And with these options (just the -fexec-charset addded) I see a call to printf().
-c print.c -fverbose-asm -Wa,-aldhs=print.lst -gdwarf-2 -fexec-charset=IBM1047
4:print.c **** printf("Hello world\n");
47 .loc 1 4 0
48 001c C0200000 larl %r2,.LC0 #,
48 0000
49 0022 C0E50000 brasl %r14,printf #,
49 0000
Note, I get this warning either way since I am not including any headers, in
order to try and force the builtin printf()..
print.c: In function 'main':
print.c:4: warning: incompatible implicit declaration of built-in function 'printf'
So it appears to me that the compiler builtin knows not to activate when the
-fexec-charset is invoked?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18785
More information about the Gcc-bugs
mailing list