testsuite/libgomp.c/pr39591-3.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, a[40];
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   int k;
00026   for (k = 0; k < sizeof a / sizeof a[0]; k++)
00027     a[k] = 0x55555555;
00028 
00029 #pragma omp parallel
00030   {
00031     int i;
00032 
00033 #pragma omp for schedule (dynamic)
00034     for (i = 0; i < 50; i++)
00035       foo (a);
00036   }
00037   if (err)
00038     abort ();
00039   return 0;
00040 }

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