> The size of the array needs to be known at compile time.
In C99 the example you give does indeed compile and silently get turned into a VLA.
In C99 the example you give does indeed compile and silently get turned into a VLA.
But it does indeed compile in Clang, and I'm looking into why. I think this line in the C11 standard might be key: "An implementation may accept other forms of constant expressions."