URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [libgomp/] [testsuite/] [libgomp.c++/] [for-6.C] - Rev 273
Compare with Previous | Blame | View Log
// PR c++/38348// { dg-do run }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 (int i = 0; i < 10; i++)f0 (i, 0);}template <typename T>voidf2 (){#pragma omp parallel forfor (T i = T (0); i < T (10); i += T (1))f0 (i, 0);}voidf3 (){#pragma omp parallel forfor (int i = 0; i < 10; i++)f0 (i, 0);}const char *p = "abcdefghij";template <typename T>voidf4 (){#pragma omp parallel forfor (const char *i = p; i < p + 10; i += 1)f0 (i, 1);}template <typename T>voidf5 (){#pragma omp parallel forfor (T i = T (p); i < T (p + 10); i += 1)f0 (i, 1);}voidf6 (){#pragma omp parallel forfor (const char *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 ();}
