2017-01-12 9 views
0

[Исправлено] - Объяснение дано в комментарияхВнутренняя ошибка компиляции C++ Cilk плюс

[Обновлен скриншот ошибки]
я получаю ошибку компиляции при компиляции с помощью GCC/5.4.0. Ниже ошибка сообщили:

internal compiler error: in lower_stmt, at gimple-low.c:397 cilk_spawn m_sparsify_graph_helper__(mdl, n_pa, n_ch, score2beat);

Ниже приведен фрагмент кода, который вызывает ошибку:

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__ 

Я предполагаю, что это ошибка компилятора, но я хотел бы знать, что это способ обойти эту ошибку и получите код, выполняемый с предупреждением и ошибкой.

Скриншот ошибки: Error scrrenshot

+0

ICE всегда является ошибкой компилятора, независимо от того, действителен ли исходный код или нет. Доложите об этом. –

+0

Это все, что говорится о внутренней ошибке? –

+0

@TrevorHickey Добавлен полный скриншот ошибки. – letsBeePolite

ответ

0

Кажется, сообщенные ошибки были устранены в выпуске GCC 6.X.

FYI, если вы столкнулись с подобной проблемой, попробуйте воспроизвести ошибку в последней версии GCC только для подтверждения того, было ли это ранее сообщено и исправлено или нет.