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

            Bug ID: 57766
           Summary: [4.9 Regression]: gcc.sum
                    c-c++-common/cilk-plus/AN/sec_implicit_ex.c
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: regression
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hp at gcc dot gnu.org
                CC: bviyer at gcc dot gnu.org
              Host: x86_64-unknown-linux-gnu
            Target: cris-axis-elf

This test previously passed, now it fails.
A patch in the revision range (last_known_working:first_known_failing)
200195:200205
exposed or caused this regression.  Since then it fails as follows:

Running /tmp/hpautotest-gcc1/gcc/gcc/testsuite/gcc.dg/cilk-plus/cilk-plus.exp
...
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -O0 -fcilkplus execution
test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -O1 -fcilkplus execution
test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -O2 -ftree-vectorize
-fcilkplus execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -O3 -fcilkplus execution
test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -g -fcilkplus execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -g -O0 -fcilkplus execution
test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -g -O1 -fcilkplus execution
test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -g -O2 -ftree-vectorize
-fcilkplus execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -g -O3 -fcilkplus execution
test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -O3 -ftree-vectorize
-fcilkplus -g execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -O0 -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -O1 -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -O2
-ftree-vectorize -std=c99 execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -O3 -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -g -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -g -O0 -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -g -O1 -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -g -O2
-ftree-vectorize -std=c99 execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus -g -O3 -std=c99
execution test
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -O3 -ftree-vectorize
-std=c99 -g -fcilkplus execution test

The messages in gcc.log are similar:
Executing on host: /tmp/hpautotest-gcc1/cris-elf/gccobj/gcc/xgcc
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/gcc/
/tmp/hpautotest-gcc1/gcc/gcc/testsuite/c-c++-common/cilk-plus/AN/sec_implicit_ex.c
 -fno-diagnostics-show-caret -fdiagnostics-color=never   -fcilkplus -fcilkplus 
 -isystem /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib/targ-include
-isystem /tmp/hpautotest-gcc1/gcc/newlib/libc/include
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libgloss/cris/
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libgloss/cris
-L/tmp/hpautotest-gcc1/gcc/libgloss/cris 
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib/
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib -sim3  -lm   -o
./sec_implicit_ex.exe    (timeout = 300)
PASS: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus (test for excess
errors)
core: 4 byte write to unmapped address 0x3d85e0f8 at 0x1ae
program stopped with signal 11.
FAIL: c-c++-common/cilk-plus/AN/sec_implicit_ex.c  -fcilkplus execution test

The tests also fail when used as part of the C++ test-suite.  The error message
looks a bit like a stack underflow error, admittedly not gracefully handled.

The most obvious change in that range is the change of number of elements from
10 to 100 in the test-case - in each dimention.  So, the test requires 4000000
bytes on a 32-bit machine (or maybe twice that, I'm not fluent in the cilkplus
array notation).  Is that 100 really necessary?  Can't we do like in the
libstdc++ test-suite and have e.g. (see for example
libstdc++-v3/testsuite/20_util/hash/chi2_quality.cc):
// { dg-additional-options "-DNUMBER=10" { target simulator } }
with the current #define wrapped in #ifndef.
Author CC:ed.

Reply via email to