1 /* PR c/65345 */ 2 /* { dg-options "" } */ 3 4 #define CHECK(X) if (!(X)) __builtin_abort () 5 6 _Atomic float i = 5; 7 _Atomic float j = 2; 8 9 void fn1(float a[(int)(i=0)])10fn1 (float a[(int) (i = 0)]) 11 { 12 } 13 14 void fn2(float a[(int)(i+=2)])15fn2 (float a[(int) (i += 2)]) 16 { 17 } 18 19 void fn3(float a[(int)++i])20fn3 (float a[(int) ++i]) 21 { 22 } 23 24 void fn4(float a[(int)++i])25fn4 (float a[(int) ++i]) 26 { 27 } 28 29 void fn5(float a[(int)++i][(int)(j=10)])30fn5 (float a[(int) ++i][(int) (j = 10)]) 31 { 32 } 33 34 void fn6(float a[(int)(i=7)][(int)j--])35fn6 (float a[(int) (i = 7)][(int) j--]) 36 { 37 } 38 39 int main()40main () 41 { 42 float a[10]; 43 float aa[10][10]; 44 fn1 (a); 45 CHECK (i == 0); 46 fn2 (a); 47 CHECK (i == 2); 48 fn3 (a); 49 CHECK (i == 3); 50 fn4 (a); 51 CHECK (i == 4); 52 fn5 (aa); 53 CHECK (i == 5); 54 CHECK (j == 10); 55 fn6 (aa); 56 CHECK (i == 7); 57 CHECK (j == 9); 58 } 59