Компилятор Intel: что означает ошибка неизвестного типа в IL walk?

Я впервые попробовал компилятор Intel (icpc) в своем проекте, который был разработан с использованием GCC. После нескольких исходных файлов возникает ошибка, которая мне мало что говорит:

/export/home/i11pcmh235/intel/bin/icpc -o .buildO/distmeasures/AlgebraicDistance.o -c -std=c++11 -Wall -c -fmessage-length=0 -fPIC -fopenmp -O3 -DNDEBUG -I/home/i11/cls/workspace/gtest/include src/distmeasures/AlgebraicDistance.cpp
src/community/PLM.cpp(147): internal error: assertion failed: unknown type in IL walk (shared/cfe/edgcpfe/walk_entry.h, line 1015)

            });
             ^

compilation aborted for src/community/PLM.cpp (code 4)

Может ли кто-нибудь объяснить это мне?

Мои флаги компилятора в порядке? Я просто пытался использовать те же, что и для GCC.

Рассматриваемый сегмент кода выглядит следующим образом:

#pragma omp atomic read
                        C = zeta[u];

//                      TRACE("Processing neighborhood of node " << u << ", which is in cluster " << C);
                        G.forNeighborsOf(u, [&](node v) {
#pragma omp atomic read
                                D = zeta[v];
//                              TRACE("Neighbor " << v << ", which is still in cluster " << zeta[v]);
                                if (D != C) { // consider only nodes in other clusters (and implicitly only nodes other than u)
                                        double delta = deltaMod(u, C, D);
                                        if (delta > deltaBest) {
                                                deltaBest = delta;
                                                best = D;
                                        }
                                }
                        });

person clstaudt    schedule 21.11.2013    source источник
comment
эй, небольшой вопрос: что это за язык (версия, название, спецификация)?   -  person    schedule 21.11.2013
comment
@АнубхавСайни С++ 11. Включая некоторые прагмы OpenMP.   -  person clstaudt    schedule 21.11.2013


Ответы (1)


Внутренняя ошибка обычно означает, что вы столкнулись с ошибкой компилятора. То есть ошибка в компиляторе, а не в вашем коде. IL — это компилятор-писатель, говорящий о «промежуточном языке», внутреннем представлении, на котором компилятор работает для генерации вашего кода.

Вам нужно будет посмотреть, исправила ли его Intel, и/или подать отчет об ошибке.

person Joe Z    schedule 21.11.2013
comment
Как правильно сообщить о такой ошибке компилятора? - person clstaudt; 21.11.2013
comment
Я не уверен с компилятором Intel. Прошло много лет с тех пор, как я использовал его, и мне никогда не приходилось сообщать об ошибках. Вы можете проверить страницы разработчиков Intel, чтобы узнать, есть ли какая-то ссылка на поддержку. Быстрый поиск в Google показывает, что это хорошая отправная точка: software.intel.com /en-us/forums/intel-c-compiler - person Joe Z; 21.11.2013