1*404b540aSrobert extern void abort (void); 2*404b540aSrobert main()3*404b540aSrobertmain() 4*404b540aSrobert { 5*404b540aSrobert int i, a; 6*404b540aSrobert 7*404b540aSrobert a = 30; 8*404b540aSrobert 9*404b540aSrobert #pragma omp parallel for firstprivate (a) lastprivate (a) \ 10*404b540aSrobert num_threads (2) schedule(static) 11*404b540aSrobert for (i = 0; i < 10; i++) 12*404b540aSrobert a = a + i; 13*404b540aSrobert 14*404b540aSrobert /* The thread that owns the last iteration will have computed 15*404b540aSrobert 30 + 5 + 6 + 7 + 8 + 9 = 65. */ 16*404b540aSrobert if (a != 65) 17*404b540aSrobert abort (); 18*404b540aSrobert 19*404b540aSrobert return 0; 20*404b540aSrobert } 21