61 lines
642 B
C
61 lines
642 B
C
/* PR c/65345 */
|
|
/* { dg-do run } */
|
|
/* { dg-require-effective-target sync_int_long } */
|
|
/* { dg-options "" } */
|
|
|
|
#define CHECK(X) if (!(X)) __builtin_abort ()
|
|
|
|
_Atomic int i = 5;
|
|
_Atomic int j = 2;
|
|
|
|
void
|
|
fn1 (int a[i = 0])
|
|
{
|
|
}
|
|
|
|
void
|
|
fn2 (int a[i += 2])
|
|
{
|
|
}
|
|
|
|
void
|
|
fn3 (int a[++i])
|
|
{
|
|
}
|
|
|
|
void
|
|
fn4 (int a[++i])
|
|
{
|
|
}
|
|
|
|
void
|
|
fn5 (int a[++i][j = 10])
|
|
{
|
|
}
|
|
|
|
void
|
|
fn6 (int a[i = 7][j--])
|
|
{
|
|
}
|
|
|
|
int
|
|
main ()
|
|
{
|
|
int a[10];
|
|
int aa[10][10];
|
|
fn1 (a);
|
|
CHECK (i == 0);
|
|
fn2 (a);
|
|
CHECK (i == 2);
|
|
fn3 (a);
|
|
CHECK (i == 3);
|
|
fn4 (a);
|
|
CHECK (i == 4);
|
|
fn5 (aa);
|
|
CHECK (i == 5);
|
|
CHECK (j == 10);
|
|
fn6 (aa);
|
|
CHECK (i == 7);
|
|
CHECK (j == 9);
|
|
}
|