letsBeePolite
letsBeePolite

Reputation: 2251

Internal compile error c++ cilk plus

[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.

Error screenshot: Error scrrenshot

Upvotes: 0

Views: 260

Answers (1)

letsBeePolite
letsBeePolite

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

Related Questions