http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54034

             Bug #: 54034
           Summary: [4.8 Regression] doduc benchmark from polyhedron 11
                    segfaults
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ubiz...@gmail.com


doduc benchmark from Polyhedron 11 benchmark suite segfaults when compile with
-O3 -ffast-math for x86_64-pc-linux-gnu target:

gcc version 4.8.0 20120719 (experimental) [trunk revision 189664] (GCC) 

[uros@localhost source]$ ./a.out
 MAIN : FIN S00002
 MAIN : FIN S00001
 MAIN : FIN S00011
 MAIN : FIN S00022
 TEMPS =     33.00000000 , NITERA :          1
 TEMPS =     34.00031044 , NITERA :        186
 TEMPS =     35.00497388 , NITERA :        955
 TEMPS =     36.00007615 , NITERA :       1512
 TEMPS =     37.00012624 , NITERA :       1765
 TEMPS =     38.00060760 , NITERA :       2044
 TEMPS =     39.00312223 , NITERA :       2327
 TEMPS =     40.00168143 , NITERA :       2607
 TEMPS =     45.00187475 , NITERA :       4017
 TEMPS =     50.00261983 , NITERA :       5492
 TEMPS =     55.00263522 , NITERA :       6981
 TEMPS =     60.00087007 , NITERA :       8679

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x7F6627DD0FD7
#1  0x7F6627DD15A4
#2  0x3C02E3599F
#3  0x4040E8 in s00061_ at doduc.f90:568
#4  0x412AD3 in s00013_ at doduc.f90:1150
#5  0x41B9D4 in doduc at doduc.f90:182

The problem is with index to y array:

Program received signal SIGSEGV, Segmentation fault.
s00061 (i=7, hv=0.0050539815561751163, hvt=0, hvme=0, hvms=0,
ynu=4.3611596409392313, re=-nan(0x8000000000000), 
    tfl=1773.5356631567458, dtfl=-nan(0x8000000000000), iopt=0) at
doduc.f90:568
568           y1 = y(i1)
Missing separate debuginfos, use: debuginfo-install glibc-2.15-51.fc17.x86_64
(gdb) p i1
$1 = -2147483635
(gdb) bt
#0  s00061 (i=7, hv=0.0050539815561751163, hvt=0, hvme=0, hvms=0,
ynu=4.3611596409392313, re=-nan(0x8000000000000), 
    tfl=1773.5356631567458, dtfl=-nan(0x8000000000000), iopt=0) at
doduc.f90:568
#1  0x0000000000412ad4 in s00013 () at doduc.f90:1150
#2  0x000000000041b9d5 in doduc () at doduc.f90:182
#3  0x0000000000400b4d in main (argc=<optimized out>, argv=<optimized out>) at
doduc.f90:199
#4  0x0000003c02e21735 in __libc_start_main () from /lib64/libc.so.6
#5  0x0000000000400b79 in _start ()
(gdb) 

Please also note that a strange runtime regression happened with this benchmark
on 18th of July [1].

[1] http://gcc.opensuse.org/c++bench/polyhedron/polyhedron-summary.txt-2-0.html

Reply via email to