URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [libgomp/] [testsuite/] [libgomp.c++/] [atomic-1.C] - Rev 273
Go to most recent revision | Compare with Previous | Blame | View Log
// 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 ();
}
Go to most recent revision | Compare with Previous | Blame | View Log