Question: For example, is 

```
static int a[1+1];

```

valid standard C? For some or all versions of the standard?

I'm not interested in whether compilers can handle it, but whether it is part of standard C.

Answer: 
C11, §6.6:

> 
> A constant expression can be evaluated during translation rather than runtime, and accordingly may be used in any place that a constant may be.
> 
> 
> 

So yes, simple constant folding is mandatory and this snippet is valid standard C.
The standard explicitly defines this.

Array declarators, 6.7.5.2 (C99):

> 
> In addition to optional type qualiﬁers and the keyword static, the [
>  and ] may delimit an expression or \*. If they delimit an expression
>  (which speciﬁes the size of an array), the expression shall have an
>  integer type. If the expression is a constant expression, it shall
>  have a value greater than zero.
> 
> 
>