ISO C90 prohíbe la matriz de longitud variable

Estoy calculando dinámicamente el tamaño de una matriz. Algo como:

<code>void foo(size_t limit)
{
  char buffer[limit * 14 + 1];
}
</code>

Pero solo el compilador de GCC dice:

<code>error: ISO C90 forbids variable length array ‘buffer’
</code>

buscando en lo que encontréesta respuesta:

C99 §6.7.5.2:

Si el tamaño es una expresión que no es una expresión constante de entero ... ... cada vez que se evalúa tendrá un valor mayor que cero.

Entonces, hice la nueva declaración de la variable de tipo de límite de tamaño para:

<code>void foo(const size_t limit)
</code>

Pero sigue dándome una advertencia. ¿Es este un error de GCC?

Respuestas a la pregunta(6)

Su respuesta a la pregunta