Bug 34404 - [4.3 Regression] 168.wupwise in SPEC CPU 2000 miscompiled
Summary: [4.3 Regression] 168.wupwise in SPEC CPU 2000 miscompiled
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libfortran (show other bugs)
Version: 4.3.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks: 32834
  Show dependency treegraph
 
Reported: 2007-12-09 11:27 UTC by H.J. Lu
Modified: 2007-12-09 13:01 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2007-12-09 12:25:11


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2007-12-09 11:27:49 UTC
Revision 130713 got

  Running 168.wupwise ref base o2 default
*** Miscompare of te.out, see /export/spec/src/2000/i686/spec/benchspec/CFP2000/168.wupwise/run/00000002/te.out.mis
*** Miscompare of wupwise.out, see /export/spec/src/2000/i686/spec/benchspec/CFP2000/168.wupwise/run/00000002/wupwise.out.mis
Invalid run; unable to continue.  If you wish to ignore errors please use '-I' or ignore_errors

At line 37 of file init.f (unit = 10, file = 'wupwise.in')
Fortran runtime error: Bad floating point number for item 1

Revision 130596 is OK.
Comment 1 H.J. Lu 2007-12-09 12:14:08 UTC
Revision 130708

http://gcc.gnu.org/viewcvs/trunk/libgfortran/io/list_read.c?r1=130708&r2=130707&pathrev=130708

has

@@ -1136,6 +1141,13 @@
 
  exp2:
   if (!isdigit (c))
+    {
+      if (c == 'i' || c == 'I' || c == 'n' || c == 'N')
+	goto inf_nan;
+      else
+	goto bad;
+    }
+
     goto bad; <------ Should be removed.
   push_char (dtp, c);
 
@@ -1166,6 +1178,41 @@
Comment 2 H.J. Lu 2007-12-09 12:15:37 UTC
The input data file has

(2.4E-1, 0.0E+0)

It is read by

COMPLEX*16 X
...
READ(10,*)  X
Comment 3 Joost VandeVondele 2007-12-09 12:25:11 UTC
complex :: x
character(len=80) :: t="(1.0E-7,4.0E-3)"
read(t,*) x
END

confirmed
Comment 4 Tobias Burnus 2007-12-09 12:58:39 UTC
Subject: Bug 34404

Author: burnus
Date: Sun Dec  9 12:58:25 2007
New Revision: 130723

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=130723
Log:
2007-12-09  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34404
        * io/list_read.c (parse_real): Remove superfluous "goto bad;".

2007-12-09  H.J. Lu  <hjl@lucon.org>
             Tobias Burnus  <burnus@net-b.de>

        PR fortran/34404
        * gfortran.dg/read_2.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/read_2.f90
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/list_read.c

Comment 5 Tobias Burnus 2007-12-09 13:01:47 UTC
Thanks for the fix and thanks Joost for the test case.

FIXED.