2017-01-12 3 views
0

[fixe] - Explication donnée dans les commentaireserreur de compilation interne C++ Cilk Plus

[Mise à jour avec capture d'écran d'erreur]
Je reçois une erreur de compilation lors de la compilation avec gcc/5.4.0. Voici l'erreur signalée:

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

Après est l'extrait de code qui provoque une erreur:

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__ 

Je suppose que c'est une erreur de compilation mais je voudrais savoir quel est le moyen de contourner cette erreur et obtenir le code exécuté avertissement et sans erreur.

capture d'écran d'erreur: Error scrrenshot

+0

Une erreur ICE est toujours une erreur du compilateur, que le code source soit valide ou non. Rapportez-le. –

+0

Est-ce tout ce qu'il dit à propos de l'erreur interne? –

+0

@TrevorHickey Ajout de la capture d'écran complète de l'erreur. – letsBeePolite

Répondre

0

Il semble que les erreurs signalées ont été aplanies dans la version GCC 6.X. Si vous faites face à un problème similaire, essayez de reproduire l'erreur sur la dernière version de GCC juste pour confirmer si elle a été précédemment signalée et rectifiée ou non.