[Bug libfortran/77393] [7 Regression] Revision r237735 changed the behavior of F0.0
jvdelisle at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 2 16:09:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77393
--- Comment #8 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
(In reply to Dominique d'Humieres from comment #7)
> > Works for me here!
>
> Are you sure that you have tested
>
> print "(f8.0)", huge(1.0)
> print "(f18.0)", huge(1.0_8)
> print "(f20.0)", huge(1.0_10)
> print "(f40.0)", huge(1.0_16)
> end
>
> ?
$ cat pr77393-b.f90
print "(f8.0)", huge(1.0)
print "(f18.0)", huge(1.0_8)
print "(f20.0)", huge(1.0_10)
print "(f40.0)", huge(1.0_16)
end
$ gfc pr77393-b.f90
$ ./a.out
********
******************
********************
****************************************
$ gfc -v
Using built-in specs.
COLLECT_GCC=gfc
COLLECT_LTO_WRAPPER=/home/jerry/dev/usr/libexec/gcc/x86_64-pc-linux-gnu/7.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../trunk/configure --prefix=/home/jerry/dev/usr
--enable-languages=c,c++,fortran --disable-libmudflap --enable-libgomp
--disable-bootstrap
Thread model: posix
gcc version 7.0.0 20160831 (experimental) (GCC)
Yes, as posted. I suspect, assuming you are on Darwin, that the implementation
of snprintf emits a larger number of bytes. I found on the system here that it
emits the number of characters I used in the routine with the adders.
Can you test by changing the define in write.c line 1349:
#define BUF_STACK_SZ 256
to something absurd like 6000.
Then run this and see how large the strings are:
program testbigf0 ! Can enormous numbers be printed with F0.0 format?
implicit none
character(10000) :: str
write(str,"(f0.0)") -huge(1.0)
print *, len(trim(str))
write(str,"(f0.0)") -huge(1.0_8)
print *, len(trim(str))
write(str,"(f0.0)") -huge(1.0_10)
print *, len(trim(str))
write(str,"(f0.0)") -huge(1.0_16)
print *, len(trim(str))
end program testbigf0
Also using gdb can you see where the segfault occurs with the pr77393-b.f90
version above.
More information about the Gcc-bugs
mailing list