1  /* PR middle-end/35549 */
       2  /* { dg-do run } */
       3  /* { dg-additional-options "-Wno-deprecated-declarations" } */
       4  
       5  #include <omp.h>
       6  #include <stdlib.h>
       7  
       8  int
       9  main (void)
      10  {
      11    int i = 6, n = 0;
      12    omp_set_dynamic (0);
      13    omp_set_nested (1);
      14    #pragma omp parallel shared (i) num_threads (3)
      15    {
      16      if (omp_get_num_threads () != 3)
      17        #pragma omp atomic
      18  	n += 1;
      19      #pragma omp parallel shared (i) num_threads (4)
      20      {
      21        if (omp_get_num_threads () != 4)
      22  	#pragma omp atomic
      23  	  n += 1;
      24        #pragma omp critical
      25  	i += 1;
      26      }
      27    }
      28    if (n == 0 && i != 6 + 3 * 4)
      29      abort ();
      30    return 0;
      31  }