text: // RUN: %libomp-compile-and-run
  #include <stdio.h>
  #include "omp_testsuite.h"
  
  /*
   * Test if the compiler supports nested parallelism
   * By Chunhua Liao, University of Houston
   * Oct. 2005
   */
  int test_omp_nested()
  {
  #ifdef _OPENMP
    if (omp_get_max_threads() > 4)
      omp_set_num_threads(4);
    if (omp_get_max_threads() < 2)
      omp_set_num_threads(2);
  #endif
  
    int counter = 0;
  #ifdef _OPENMP
    omp_set_nested(1);
    omp_set_max_active_levels(omp_get_supported_active_levels());
  #endif
  
    #pragma omp parallel shared(counter)
    {
      #pragma omp critical
      counter++;
      #pragma omp parallel
      {
        #pragma omp critical
        counter--;
      }
    }
    return (counter != 0);
  }
  
  int main()
  {
    int i;
    int num_failed=0;
  
    for(i = 0; i < REPETITIONS; i++) {
      if(!test_omp_nested()) {
        num_failed++;
      }
    }
    return num_failed;
  }
  