pr32362-1.c 670 B

1234567891011121314151617181920212223242526272829303132
  1. /* PR middle-end/32362 */
  2. /* { dg-do run } */
  3. /* { dg-additional-options "-Wno-deprecated-declarations" } */
  4. #include <omp.h>
  5. #include <stdlib.h>
  6. int
  7. main ()
  8. {
  9. int n[4] = { -1, -1, -1, -1 };
  10. static int a = 2, b = 4;
  11. omp_set_num_threads (4);
  12. omp_set_dynamic (0);
  13. omp_set_nested (1);
  14. #pragma omp parallel private(b)
  15. {
  16. b = omp_get_thread_num ();
  17. #pragma omp parallel firstprivate(a)
  18. {
  19. a = (omp_get_thread_num () + a) + 1;
  20. if (b == omp_get_thread_num ())
  21. n[omp_get_thread_num ()] = a + (b << 4);
  22. }
  23. }
  24. if (n[0] != 3)
  25. abort ();
  26. if (n[3] != -1
  27. && (n[1] != 0x14 || n[2] != 0x25 || n[3] != 0x36))
  28. abort ();
  29. return 0;
  30. }