https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69028

            Bug ID: 69028
           Summary: ICE on *any* valid Cilk+ code C/C++: -fcilkplus is
                    incompatible with -fprofile-arcs
           Product: gcc
           Version: 5.3.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: driver
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yury.zaytsev at traveltainment dot de
  Target Milestone: ---

I have found that Cilk+ programs are basically unusable with `--coverage`,
irrespective of whether it's a C or C++ program, therefore I'm marking this as
a driver issue.

Additionally, I set the severity to major, because I haven't found any
indication that profiling is unsupported with Cilk+ runtime and it's arguably
one of the fundamental features of the compiler. In comparison, OpenMP runtime
certainly does support profiling.

Affected are GCC 4.9 and GCC 5.x, I didn't have a chance to try on GCC 6 /
trunk.

$ cat ice.c 
#include <cilk/cilk.h>

void parallel() {
}

int main() {
    cilk_spawn parallel();
    cilk_sync;
}

$ gcc-4.9 -fcilkplus ice.c
$ g++-4.9 -fcilkplus ice.c
$ gcc-5 -fcilkplus ice.c
$ g++-5 -fcilkplus ice.c

$ gcc-4.9 -fcilkplus -fprofile-arcs ice.c 
ice.c: In function '_cilk_spn_0':
ice.c:9:1: internal compiler error: Segmentation fault
 }
 ^

$ g++-4.9 -fcilkplus -fprofile-arcs ice.c 
ice.c: In function '<built-in>':
ice.c:9:1: internal compiler error: Segmentation fault
 }
 ^

$ gcc-5 -fcilkplus -fprofile-arcs ice.c 
ice.c:9:1: internal compiler error: Segmentation fault
 }
 ^
0x9a106f crash_signal
        ../../src/gcc/toplev.c:383
0x6b688f coverage_checksum_string
        ../../src/gcc/coverage.c:542
0x6b7a86 coverage_compute_profile_id(cgraph_node*)
        ../../src/gcc/coverage.c:625
0xb8ef3e init_node_map(bool)
        ../../src/gcc/value-prof.c:1308
0xa37b1e tree_profiling
        ../../src/gcc/tree-profile.c:545
0xa37b1e execute
        ../../src/gcc/tree-profile.c:670

$ g++-5 -fcilkplus -fprofile-arcs ice.c 
ice.c:9:1: internal compiler error: Segmentation fault
 }
 ^
0xa8842f crash_signal
        ../../src/gcc/toplev.c:383
0x79c71f coverage_checksum_string
        ../../src/gcc/coverage.c:542
0x79d916 coverage_compute_profile_id(cgraph_node*)
        ../../src/gcc/coverage.c:625
0xc75cae init_node_map(bool)
        ../../src/gcc/value-prof.c:1308
0xb1ed3e tree_profiling
        ../../src/gcc/tree-profile.c:545
0xb1ed3e execute
        ../../src/gcc/tree-profile.c:670

$ gcc-5 --version
gcc-5 (Ubuntu 5.2.1-23ubuntu1~12.04) 5.2.1 20151031

$ gcc-4.9 --version
gcc-4.9 (Ubuntu 4.9.2-0ubuntu1~12.04) 4.9.2

Reply via email to