Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/atomic-1.C @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 04ced10e8804 |
line wrap: on
line source
// PR c++/33894 // { dg-do run } // { dg-options "-O2" } extern "C" void abort (); int check; template<typename T> void foo () { #pragma omp atomic check |= sizeof (T); } template<typename T> void bar (T *x, T y) { #pragma omp atomic *x += y; } template<typename T> void baz () { #pragma omp atomic check++; } int main () { int i = 0; long l = 0; check = 0; foo<char> (); if (check != sizeof (char)) abort (); foo<short> (); if (check != (sizeof (char) | sizeof (short))) abort (); bar(&i, 4); bar(&l, 8L); if (i != 4 || l != 8L) abort (); baz<char> (); if (check != (sizeof (char) | sizeof (short)) + 1) abort (); baz<long double> (); if (check != (sizeof (char) | sizeof (short)) + 2) abort (); }