------- Comment #9 from jvdelisle at gcc dot gnu dot org 2008-12-13 16:28 ------- I have isolated the problem to gfc_itoa. gfc_itoa returns a string. The number of digits is determined from the strlen of that string. At -m32, that string length (digits, see below) is off by one. I instrumented write_decimal in write.c to see this. I now will dig into gfc_itoa.
$ gfc -m64 pr38504.f90 $ ./a.out sign=1 w=22, m=-1, digits=19, nsign=1 -9223372036854775808 $ gfc -m32 pr38504.f90 $ ./a.out sign=1 w=22, m=-1, digits=20, nsign=1 --9223372036854775808 -- jvdelisle at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |jvdelisle at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-12-12 13:55:55 |2008-12-13 16:28:33 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38504