gcc 2.8.1 on sun SunOS 5.5.1 Generic_103640-31 sun4u sparc SUNW,Ultra-Enterprise

Sam Steingold sds@gnu.org
Mon Jan 31 12:12:00 GMT 2000


The appended file produces different output when compiled with gcc and
when compiled with sun cc:

$ gcc gcc-bug.c ; ./a.out
On the first dhy of Christmhs my true love ghve to me
h phrtridge in h pehr tree.
 
On the second dhy of Christmhs my true love ghve to me
two turtle doves
hnd h phrtridge in h pehr tree.
 
On the third dhy of Christmhs my true love ghve to me
three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the fourth dhy of Christmhs my true love ghve to me
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the fifth dhy of Christmhs my true love ghve to me
five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the sixth dhy of Christmhs my true love ghve to me
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the seventh dhy of Christmhs my true love ghve to me
sevean swhns h-swimming,
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the eigth dhy of Christmhs my true love ghve to me
eight mhids h-milking, sevean swhns h-swimming,
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the ninth dhy of Christmhs my true love ghve to me
nine lhdies dhncing, eight mhids h-milking, sevean swhns h-swimming,
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the tenth dhy of Christmhs my true love ghve to me
ten lords h-lehping,
nine lhdies dhncing, eight mhids h-milking, sevean swhns h-swimming,
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the eleventh dhy of Christmhs my true love ghve to me
eleven pipers piping, ten lords h-lehping,
nine lhdies dhncing, eight mhids h-milking, sevean swhns h-swimming,
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
On the twelfth dhy of Christmhs my true love ghve to me
twelve drummers drumming, eleven pipers piping, ten lords h-lehping,
nine lhdies dhncing, eight mhids h-milking, sevean swhns h-swimming,
six geese h-lhying, five gold rings;
four chlling birds, three french hens, two turtle doves
hnd h phrtridge in h pehr tree.
 
$ cc gcc-bug.c ; ./a.out
"gcc-bug.c", line 63: warning: character constant too long
"gcc-bug.c", line 63: warning: character constant too long
On the first day of Christmas my true love gave to me
a partridge in a pear tree.
 
On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.
 
On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.
 
On the fourth day of Christmas my true love gave to me
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the fifth day of Christmas my true love gave to me
five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the sixth day of Christmas my true love gave to me
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the seventh day of Christmas my true love gave to me
sevean swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the eigth day of Christmas my true love gave to me
eight maids a-milking, sevean swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the ninth day of Christmas my true love gave to me
nine ladies dancing, eight maids a-milking, sevean swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, sevean swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, sevean swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, sevean swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.
 
----
the gcc-conpiled version seems to replace "a" with "h".


-------------------------------------------------------------
#include <stdio.h>
#define putcharx(a) ((a==0)?putchar('a'):putchar(a))
/* #define putcharx(a) (putchar(a)) */

main(t, _, a)
        char
                       *
                        a;
{
        return !

                0 < t ?
                t < 3 ?

                main(-79, -13, a +
                     main(-87, 1 - _,
                          main(-86, 0, a + 1)
                          + a)) :

                1,
                t < _ ?
                main(t + 1, _, a)
                : 3,

                main(-94, -27 + t, a)
                && t == 2 ? _
                < 13 ?

                main(2, _ + 1, "%s %d %d\n")
                : 9 : 16 :
                t < 0 ?
                t < -72 ?
                main(_, t,

"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;\
\
#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;\
q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; \
r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\n\
\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;\
{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
                :
                t < -50 ?
                _ == *a ?
                putcharx(31[a]) :

                main(-65, _, a + 1)
                :
                main((*a == '/') + t, _, a + 1)
                :

                0 < t ?

                main(2, 2, "%s")
                : *a == '/' ||

                main(0,

                     main(-61, *a, "!ek;dc\n\
i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")
                     ,a + 1);
}



More information about the Gcc-bugs mailing list