61 lines
728 B
C
61 lines
728 B
C
|
/* PR c/64824 */
|
||
|
/* { dg-do run } */
|
||
|
|
||
|
void
|
||
|
f1 (void)
|
||
|
{
|
||
|
short a;
|
||
|
short b = 1;
|
||
|
int c = 3;
|
||
|
#pragma omp atomic capture
|
||
|
a = b = c << b;
|
||
|
if (b != 6 || a != 6)
|
||
|
__builtin_abort ();
|
||
|
}
|
||
|
|
||
|
void
|
||
|
f2 (void)
|
||
|
{
|
||
|
short a;
|
||
|
short b = 1;
|
||
|
int c = 3;
|
||
|
#pragma omp atomic capture
|
||
|
a = b = c + b;
|
||
|
if (b != 4 || a != 4)
|
||
|
__builtin_abort ();
|
||
|
}
|
||
|
|
||
|
void
|
||
|
f3 (void)
|
||
|
{
|
||
|
short a;
|
||
|
short b = 1;
|
||
|
long long int c = 3;
|
||
|
#pragma omp atomic capture
|
||
|
a = b = c + b;
|
||
|
if (b != 4 || a != 4)
|
||
|
__builtin_abort ();
|
||
|
}
|
||
|
|
||
|
void
|
||
|
f4 (void)
|
||
|
{
|
||
|
char a;
|
||
|
char b = 1;
|
||
|
long long int c = 3LL;
|
||
|
#pragma omp atomic capture
|
||
|
a = b = c << b;
|
||
|
if (b != 6 || a != 6)
|
||
|
__builtin_abort ();
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main ()
|
||
|
{
|
||
|
f1 ();
|
||
|
f2 ();
|
||
|
f3 ();
|
||
|
f4 ();
|
||
|
return 0;
|
||
|
}
|