------- 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