Ошибка компиляции cilk plus с gcc-4.7
Я получаю следующую ошибку
main.c:107:2: internal compiler error: in extract_for_fields, at cilk-spawn.c:1857
}
и соответствующие строки:
cilk_for (index = 0; table_name[index]!=NULL; ++index )
{
/* some work*/
}
Line 107
соответствует закрывающим скобкам цикла cilk_for.
Любая помощь приветствуется!
2 ответа
То, что я сделал выше, не было действительным cilk_for
цикл, потому что cilk_for
Цикл должен проверить управляющую переменную. Также нужно уметь предсказывать, сколько раз цикл будет работать, и в этом случае это невозможно. Так что правильная версия для этого будет
int count=0;
while(table_name[count]!=NULL)
count++;
cilk_for (index = 0; index!=count; ++index )
{
/* some work*/
}
Попробуйте построить без оптимизации (не используйте флаги оптимизации или используйте -O0
явно).
Если это поможет, вы можете попробовать -O1
(некоторая оптимизация) работает, то -O2
, и так далее. Если вам повезет, вы можете выяснить, каким образом оптимизация вызывает проблему, а затем просто отключить эту оптимизацию с некоторыми -fno-foo
флаг.