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.