Недопустимая инструкция при запуске минимальной программы OpenMP

Эта минимальная программа OpenMP

#include 
int main() 
{
  #pragma omp parallel sections
  {
    #pragma omp section
    {
      while(1) {}
    }

    #pragma omp section
    {  
      while(1) {}
    }
  }
}

выдаст эту ошибку при компиляции и запуске сgcc test.c -fopenmp:

Illegal instruction (core dumped)

Когда я меняю один из циклов с помощью

  int i=1;
  while(i++) {}

или любое другое условие, которое компилируется и выполняется без ошибок. Кажется, 1как условие цикла в разных потоках вызывает странное поведение. Почему?

редактировать:Я использую gcc 4.6.3

редактировать:Это ошибка в gcc, и она была отправлена ​​разработчикам gcc как ошибка 54017 .

7
задан steffen 19 July 2012 в 07:46
поделиться