public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c @ 2004-08-25 23:48 sgk at troutmask dot apl dot washington dot edu 2004-08-25 23:49 ` [Bug libfortran/17195] " pinskia at gcc dot gnu dot org ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: sgk at troutmask dot apl dot washington dot edu @ 2004-08-25 23:48 UTC (permalink / raw) To: gcc-bugs This program, program t real(8) y print*, 'huge(y) = ', huge(y) end program t when compiled with "gfortran -static -o t t.f90" leads to a program "t", which executes an infinite loop. The problem is in libgfortran/io/write.c where write_real() sets the global variable g.scaling=1. We eventually end up executing this code in output_float() where n = huge(y) and sca = 1. if (ft == FMT_F || ft == FMT_E || ft == FMT_D) { if (ft == FMT_F) scale_flag = 0; if (ft == FMT_D) exp_char = 'D' ; minv = 0.1; maxv = 1.0; /* Calculate the new val of the number with consideration of global scale value. */ while (sca > 0) { minv *= 10.0; maxv *= 10.0; n *= 10.0; /* XXXXX huge(y) * 10 becomes Inf. */ sca -- ; neval --; } /* Now calculate the new Exp value for this number. */ sca = g.scale_factor; while(sca >= 1) { sca /= 10; digits ++ ; } } Further down, we hit this loop and n = Inf > maxv, forever. while (scale_flag && n > 0.0 && n > maxv) { if (n > maxv) { n = n / 10.0 ; neval ++; } } -- Summary: Infinite loop in output_float in libgfortran/io/write.c Product: gcc Version: 3.5.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sgk at troutmask dot apl dot washington dot edu CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: amd64-unknown-freebsd5.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17195 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libfortran/17195] Infinite loop in output_float in libgfortran/io/write.c 2004-08-25 23:48 [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c sgk at troutmask dot apl dot washington dot edu @ 2004-08-25 23:49 ` pinskia at gcc dot gnu dot org 2004-08-26 20:32 ` sgk at troutmask dot apl dot washington dot edu ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2004-08-25 23:49 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-08-25 23:49 ------- Confirmed. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed| |1 Last reconfirmed|0000-00-00 00:00:00 |2004-08-25 23:49:52 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17195 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libfortran/17195] Infinite loop in output_float in libgfortran/io/write.c 2004-08-25 23:48 [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c sgk at troutmask dot apl dot washington dot edu 2004-08-25 23:49 ` [Bug libfortran/17195] " pinskia at gcc dot gnu dot org @ 2004-08-26 20:32 ` sgk at troutmask dot apl dot washington dot edu 2004-08-28 19:48 ` cvs-commit at gcc dot gnu dot org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: sgk at troutmask dot apl dot washington dot edu @ 2004-08-26 20:32 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From sgk at troutmask dot apl dot washington dot edu 2004-08-26 20:32 ------- For a patch see http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02180.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17195 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libfortran/17195] Infinite loop in output_float in libgfortran/io/write.c 2004-08-25 23:48 [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c sgk at troutmask dot apl dot washington dot edu 2004-08-25 23:49 ` [Bug libfortran/17195] " pinskia at gcc dot gnu dot org 2004-08-26 20:32 ` sgk at troutmask dot apl dot washington dot edu @ 2004-08-28 19:48 ` cvs-commit at gcc dot gnu dot org 2004-08-28 22:03 ` pinskia at gcc dot gnu dot org 2004-08-31 20:58 ` pinskia at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: cvs-commit at gcc dot gnu dot org @ 2004-08-28 19:48 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From cvs-commit at gcc dot gnu dot org 2004-08-28 19:48 ------- Subject: Bug 17195 CVSROOT: /cvs/gcc Module name: gcc Changes by: pbrook@gcc.gnu.org 2004-08-28 19:48:03 Modified files: gcc/testsuite : ChangeLog libgfortran : ChangeLog libgfortran.h libgfortran/io : write.c libgfortran/runtime: error.c Added files: gcc/testsuite/gfortran.dg: edit_real_1.f90 Log message: PR libfortran/17195 * libgfortran.h (rtoa): Remove prototype. * runtime/error.c (rtoa): Remove. * io/write.c (calculate_G_format): Don't add blanks if E format is used. Add correct number of blanks when exponent width is specified. (output_float): Rewrite. testsuite/ * gfortran.dg/edit_real_1.f90: New test. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4203&r2=1.4204 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/edit_real_1.f90.diff?cvsroot=gcc&r1=NONE&r2=1.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcc&r1=1.69&r2=1.70 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/libgfortran.h.diff?cvsroot=gcc&r1=1.9&r2=1.10 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/write.c.diff?cvsroot=gcc&r1=1.11&r2=1.12 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/error.c.diff?cvsroot=gcc&r1=1.3&r2=1.4 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17195 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libfortran/17195] Infinite loop in output_float in libgfortran/io/write.c 2004-08-25 23:48 [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c sgk at troutmask dot apl dot washington dot edu ` (2 preceding siblings ...) 2004-08-28 19:48 ` cvs-commit at gcc dot gnu dot org @ 2004-08-28 22:03 ` pinskia at gcc dot gnu dot org 2004-08-31 20:58 ` pinskia at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2004-08-28 22:03 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-08-28 22:03 ------- Fixed. -- What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17195 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug libfortran/17195] Infinite loop in output_float in libgfortran/io/write.c 2004-08-25 23:48 [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c sgk at troutmask dot apl dot washington dot edu ` (3 preceding siblings ...) 2004-08-28 22:03 ` pinskia at gcc dot gnu dot org @ 2004-08-31 20:58 ` pinskia at gcc dot gnu dot org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu dot org @ 2004-08-31 20:58 UTC (permalink / raw) To: gcc-bugs -- What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |3.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17195 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2004-08-31 20:58 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2004-08-25 23:48 [Bug libfortran/17195] New: Infinite loop in output_float in libgfortran/io/write.c sgk at troutmask dot apl dot washington dot edu 2004-08-25 23:49 ` [Bug libfortran/17195] " pinskia at gcc dot gnu dot org 2004-08-26 20:32 ` sgk at troutmask dot apl dot washington dot edu 2004-08-28 19:48 ` cvs-commit at gcc dot gnu dot org 2004-08-28 22:03 ` pinskia at gcc dot gnu dot org 2004-08-31 20:58 ` pinskia at gcc dot gnu dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).