following from a previous email.. a recent commit (to fix the final part of
) caused a difficult to pin down issue, which is that the output of ccom depends on the compiler used to build it.
if I build ccom with gcc4.8 then it produces one output
if I build ccom with pcc (the one that gcc4.8 built, above) then it produces a different output, which should not happen.
I have pinned down the build difference but not what causes it. The files attached are
1. ccom.init .. this is the ccom which was built with gcc4.8
2. ccom.pcc1 .. this is the ccom which was built using file #1 above
3. builtins.i .. this is the PCC builtins.c file, which has been preprocessed to remove environmental considerations and had as much unrelated code removed that I could find.
so, the following commands show the difference in the output for the builtin_check() function
% ccom.init -xtemps -xinline builtins.i builtins.init
% ccom.pcc1 -xtemps -xinline builtins.i builtins.pcc1
% diff -u builtins.init builtins.pcc1
@@ -11,6 +11,7 @@
+ addl $4, %esp
note that editing the builtins.i file further to remove anything (even a line marker) seems to make this difference disappear.
I am not sure that this particular difference is significant in the general scheme of things (this is taken care of by the "leave", right?) but I think it is worrying that it occurs