single-2.C 413 B

12345678910111213141516171819202122232425262728293031323334353637
  1. extern "C" void abort (void);
  2. struct X
  3. {
  4. int a;
  5. char b;
  6. int c;
  7. };
  8. int
  9. main()
  10. {
  11. int i = 0;
  12. struct X x;
  13. int bad = 0;
  14. #pragma omp parallel private (i, x) shared (bad)
  15. {
  16. i = 5;
  17. #pragma omp single copyprivate (i, x)
  18. {
  19. i++;
  20. x.a = 23;
  21. x.b = 42;
  22. x.c = 26;
  23. }
  24. if (i != 6 || x.a != 23 || x.b != 42 || x.c != 26)
  25. bad = 1;
  26. }
  27. if (bad)
  28. abort ();
  29. return 0;
  30. }