With revision r163997 this test passed.
>From revision r163998 and on, including at least r164242 this test has failed
as follows:

Running /tmp/reg_a4_998/gcc/gcc/testsuite/gfortran.dg/dg.exp ...
... (non-regressions elided)
FAIL: gfortran.dg/forall_4.f90  -O3 -g  execution test

With the message in the logfile being:

Executing on host: /tmp/reg_a4_998/gccobj/gcc/testsuite/gfortran/../../gfortran
/tmp/reg_a4_998/gcc/gcc/testsuite/gfortran.dg/forall_4.f90   -O3 -g  
-pedantic-errors   -isystem
/tmp/reg_a4_998/gccobj/cris-elf/./newlib/targ-include -isystem
-L/tmp/reg_a4_998/gccobj/cris-elf/./newlib -sim3 
-L/tmp/reg_a4_998/gccobj/cris-elf/./libiberty  -lm   -o ./forall_4.exe   
(timeout = 300)
PASS: gfortran.dg/forall_4.f90  -O3 -g  (test for excess errors)
program stopped with signal 6.
FAIL: gfortran.dg/forall_4.f90  -O3 -g  execution test

A shortened test-case is attached, in which the second call to abort is
executed.  Apparently the "-g" is critical.  There is the following
assembly-code difference without/with "-g".  Note the actual *code* difference
among the expected debug-label differences, in which the comparison-part of the
cstore is lost:
@@ -62,18 +103,24 @@ _main:
        cmpq 4,$r9
        bne .L16
+       .loc 1 32 0
        clear.d [$sp+32]
        clear.d [$sp+36]
        clear.d [$sp+40]
        clear.d [$sp+44]
-       move.b 1,$r13
-       cmp.d [$sp+16],$r13
+       .loc 1 33 0
        seq $r9
-       cmp.d [$sp+24],$r13
+       move.d [$sp+24],$r13
+       cmpq 1,$r13
        seq $r13
        lslq 16,$r13
        or.d $r13,$r9
        oR.d 16777472,$r9
        move.b $r9,$r9
        bne .L18

There is no such actual code difference with r163997.
N.B: CRIS is a cc0 target.

Author of patch for this revision CC:ed.

           Summary: [4.5 Regression]: gfortran.dg/forall_4.f90 -O3, wrong
                    code with -g
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hp at gcc dot gnu dot org
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: cris-axis-elf


Reply via email to