Matrizes de comprimento variável em C89?

Eu li que o C89 não suporta matrizes de comprimento variável, mas o experimento a seguir parece refutar isso:

#include <stdio.h>

int main()
{
   int x;
   printf("Enter a number: ");
   scanf("%d", &x);
   int a[x];
   a[0] = 1;
   // ...
   return 0;
}

Quando eu compilar como tal (supondo que o nome do arquivo sejava_test.c):

gcc va_test.c -std=c89 -o va_test

Funciona...

o que estou perdendo? :-)