Illegal instruction when running a minimal OpenMP program
===

This minimal OpenMP program 

    #include <omp.h>
    int main() 
    {
      #pragma omp parallel sections
      {
        #pragma omp section
        {
          while(1) {}
        }
    
        #pragma omp section
        {  
          while(1) {}
        }
      }
    }

will produce this error when compiled and run with `gcc test.c -fopenmp`:

    Illegal instruction (core dumped)

When I change either one of the loops with 

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

or any other condition it compiles and runs without error. It seems, that `1` as a loop condition in different threads cause some strange behaviour. Why?