Reputation: 2251
[Fixed]- Explanation given in comments
[Updated with error screenshot]
I am getting a compilation error when compiled using gcc/5.4.0. Following is the error reported:
internal compiler error: in lower_stmt, at gimple-low.c:397 cilk_spawn m_sparsify_graph_helper__(mdl, n_pa, n_ch, score2beat);
Following is the code snippet that causes error:
void m_sparsify_graph_helper__(MDL mdl, set_type pa, set_type ch, std::vector<double> score2beat) {
//cilk::reducer<cilk::op_list_append<RNode_>> rlist;
//"rlist" - defined in the class as a private variable
if (ch == 0) { return; }
set_type n_ch = ch;
// Some more code -- which I am very sure is not causing error
int lsb = n_ - 1;
for (; lsb >= 0; --lsb) { if (in_set(pa, lsb)) { break; } }
if (lsb == n_ - 1) { return; }
set_type n_pa = set_add(pa, lsb + 1);
int n_pa_sz = set_size(n_pa);
if (n_pa_sz >= n_) { return; }
BitCombination comb(n_pa, n_pa_sz, n_);
for (;;) {
n_pa = comb.data();
// If cilk_spawn keyword removed it compiles fine.
cilk_spawn m_sparsify_graph_helper__(mdl, n_pa, n_ch, score2beat);
if (!comb.next() || in_set(n_pa, n_ - 1)) { break; }
}
}// m_sparsify_graph_helper__
I assume it's a compiler error but I would like to know what is the way to circumvent this error and get the code executed warning and error free.
Upvotes: 0
Views: 260
Reputation: 2251
It seems the reported errors was ironed out in the GCC 6.X release.
FYI, if you are facing similar issue try to reproduce the error on the latest release of GCC just to confirm whether it was earlier reported and rectified or not.
Upvotes: 0