1 /* PR c/65345 */ 2 /* { dg-options "" } */ 3 4 _Atomic float i = 3.0f; 5 6 float a1 = sizeof (i + 1.2); 7 float a2 = sizeof (i = 0); 8 float a3 = sizeof (i++); 9 float a4 = sizeof (i--); 10 float a5 = sizeof (-i); 11 12 float b1 = _Alignof (i + 1); 13 float b2 = _Alignof (i = 0); 14 float b3 = _Alignof (i++); 15 float b4 = _Alignof (i--); 16 float b5 = _Alignof (-i); 17 18 float c1 = i; /* { dg-error "initializer element is not constant" } */ 19 float c2 = (i ? 1 : 2); /* { dg-error "initializer element is not constant" } */ 20 float c3[(int) i]; /* { dg-error "variably modified" } */ 21 float c4 = 0 || i; /* { dg-error "initializer element is not constant" } */ 22 float c5 = (i += 10); /* { dg-error "initializer element is not constant" } */ 23 24 _Static_assert (_Generic (i, float: 1, default: 0) == 1, "1"); 25 _Static_assert (_Generic (i + 1, float: 1, default: 0) == 1, "2"); 26 _Static_assert (_Generic (i = 0, float: 1, default: 0) == 1, "3"); 27 _Static_assert (_Generic (i++, float: 1, default: 0) == 1, "4"); 28 _Static_assert (_Generic (i--, float: 1, default: 0) == 1, "5"); 29 30 _Atomic int sz = 2; 31 void fn1 (float a[sz + 1]); 32 void fn2 (float a[sz = 0]); 33 void fn3 (float a[sz++]); 34 void fn4 (float a[sz--]); 35 void fn5 (float a[-sz]); 36