testsuite/libgomp.c/pr39591-2.c

Go to the documentation of this file.
00001 /* PR other/39591 */
00002 /* { dg-do run } */
00003 /* { dg-options "-O2" } */
00004 
00005 extern void abort (void);
00006 
00007 int err;
00008 
00009 void __attribute__((noinline))
00010 foo (int *array)
00011 {
00012 #pragma omp task
00013   {
00014     int j;
00015     for (j = 0; j < sizeof array / sizeof array[0]; j++)
00016       if (array[j] != 0x55555555)
00017 #pragma omp atomic
00018     err++;
00019   }
00020 }
00021 
00022 int
00023 main (void)
00024 {
00025 #pragma omp parallel
00026   {
00027     int array[40];
00028     int i;
00029     for (i = 0; i < sizeof array / sizeof array[0]; i++)
00030       array[i] = 0x55555555;
00031 
00032 #pragma omp for schedule (dynamic)
00033     for (i = 0; i < 50; i++)
00034       foo (array);
00035   }
00036   if (err)
00037     abort ();
00038   return 0;
00039 }

Generated on Fri Apr 5 05:38:10 2013 for Libgomp by  doxygen 1.4.7