URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgomp/] [testsuite/] [libgomp.c++/] [for-7.C] - Rev 735
Compare with Previous | Blame | View Log
// PR c++/// { dg-do run }// { dg-options "-std=c++0x -fopenmp" }extern "C" void abort ();int cnt;template <typename T>voidf0 (T, int){abort ();}template <>voidf0<int> (int, int type){if (type != 0)abort ();#pragma omp atomiccnt++;}template <>voidf0<const char *> (const char *, int type){if (type != 1)abort ();#pragma omp atomiccnt++;}template <typename T>voidf1 (){#pragma omp parallel forfor (auto i = 0; i < 10; i++)f0 (i, 0);}template <typename T>voidf2 (){#pragma omp parallel forfor (auto i = T (0); i < T (10); i += T (1))f0 (i, 0);}voidf3 (){#pragma omp parallel forfor (auto i = 0; i < 10; i++)f0 (i, 0);}const char *p = "abcdefghij";template <typename T>voidf4 (){#pragma omp parallel forfor (auto i = p; i < p + 10; i++)f0 (i, 1);}template <typename T>voidf5 (){#pragma omp parallel forfor (auto i = T (p); i < T (p + 10); i++)f0 (i, 1);}voidf6 (){#pragma omp parallel forfor (auto i = p; i < p + 10; i++)f0 (i, 1);}intmain (){f1<int> ();if (cnt != 10)abort ();f2<int> ();if (cnt != 20)abort ();f3 ();if (cnt != 30)abort ();f4<int> ();if (cnt != 40)abort ();f5<const char *> ();if (cnt != 50)abort ();f6 ();if (cnt != 60)abort ();}
