diff --git a/tests/syntax/generic.c b/tests/syntax/generic.c
index 17726aab534ca3727bd74b063ccb58fd833d160c..15a9d6aa05fa9e4048c736354908ca4f41fe01bc 100644
--- a/tests/syntax/generic.c
+++ b/tests/syntax/generic.c
@@ -9,6 +9,7 @@
    STDOPT: #"-cpp-extra-args=-DINCOMPLETE_TYPE"
    STDOPT: #"-cpp-extra-args=-DINCOMPATIBLE_QUALIFIED_TYPE"
    STDOPT: #"-cpp-extra-args=-DFUNCTION_TYPE"
+   STDOPT: #"-cpp-extra-args=-DVLA"
    EXIT: 0
    STDOPT:
 */
@@ -63,6 +64,11 @@ int main() {
 #endif
 #ifdef INCOMPATIBLE_QUALIFIED_TYPE
   int a = _Generic("abc", char const *: 0);
+#endif
+#ifdef VLA
+  int x = 42;
+  int y[x];
+  int a = _Generic(y, int[x]: 0, default: 1);
 #endif
   int ok1 = _Generic("abc", char*: 0);
   int ok2 = _Generic(1.0, float: 1, double: 0);
diff --git a/tests/syntax/oracle/generic.1.res.oracle b/tests/syntax/oracle/generic.1.res.oracle
index c8f6605be6dcb690f616c3dd9bcdf7fc7226ea19..525bed32e1ea201e2fd17042f1b7055ef57eaa50 100644
--- a/tests/syntax/oracle/generic.1.res.oracle
+++ b/tests/syntax/oracle/generic.1.res.oracle
@@ -1,11 +1,11 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:36: 
+[kernel] generic.c:37: 
   _Generic requires at least one generic association:
-  Location: line 36, between columns 10 and 25, before or at token: ;
-  34    int main() {
-  35    #ifdef NONE
-  36      int a = _Generic("abc");
+  Location: line 37, between columns 10 and 25, before or at token: ;
+  35    int main() {
+  36    #ifdef NONE
+  37      int a = _Generic("abc");
                   ^^^^^^^^^^^^^^^
-  37    #endif
-  38    #ifdef TOO_MANY_DEFAULTS
+  38    #endif
+  39    #ifdef TOO_MANY_DEFAULTS
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.10.res.oracle b/tests/syntax/oracle/generic.10.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..70bdefa20fded77f7906a06abef980f36e8fc77e
--- /dev/null
+++ b/tests/syntax/oracle/generic.10.res.oracle
@@ -0,0 +1,32 @@
+[kernel] Parsing generic.c (with preprocessing)
+/* Generated by Frama-C */
+int foo(int i)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+void void_foo(int i)
+{
+  return;
+}
+
+float cbrtf(float x);
+
+int main(void)
+{
+  int __retres;
+  float tmp;
+  int ok1 = 0;
+  int ok2 = 0;
+  int ok3 = 0;
+  int ok4 = 0;
+  tmp = cbrtf(0.0f);
+  double c = (double)tmp;
+  int ok5 = 0;
+  __retres = 0;
+  return __retres;
+}
+
+
diff --git a/tests/syntax/oracle/generic.2.res.oracle b/tests/syntax/oracle/generic.2.res.oracle
index 0edc5626dfd5157572f29d022cfbf997a14fba98..592f81d34ca92c28b5b06208ad9812a2b163f9de 100644
--- a/tests/syntax/oracle/generic.2.res.oracle
+++ b/tests/syntax/oracle/generic.2.res.oracle
@@ -1,10 +1,10 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:39: User Error: 
+[kernel] generic.c:40: User Error: 
   multiple default clauses in _Generic selection
-  37    #endif
-  38    #ifdef TOO_MANY_DEFAULTS
-  39      int a = _Generic("abc", default: 1, default: 1);
+  38    #endif
+  39    #ifdef TOO_MANY_DEFAULTS
+  40      int a = _Generic("abc", default: 1, default: 1);
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  40    #endif
-  41    #ifdef TOO_MANY_COMPATIBLE
+  41    #endif
+  42    #ifdef TOO_MANY_COMPATIBLE
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.3.res.oracle b/tests/syntax/oracle/generic.3.res.oracle
index af00e69e6f9a9db9d0453d3965d5af3f92f4deb1..89f860800fa257cb2642325739dc2d86ca8c1624 100644
--- a/tests/syntax/oracle/generic.3.res.oracle
+++ b/tests/syntax/oracle/generic.3.res.oracle
@@ -1,11 +1,11 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:43: User Error: 
+[kernel] generic.c:44: User Error: 
   multiple compatible types in _Generic selection:
   'my_uint' and 'unsigned int'
-  41    #ifdef TOO_MANY_COMPATIBLE
-  42      // compatibility via typedef
-  43      int a = _Generic(42, my_uint: 1, unsigned int: 2);
+  42    #ifdef TOO_MANY_COMPATIBLE
+  43      // compatibility via typedef
+  44      int a = _Generic(42, my_uint: 1, unsigned int: 2);
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  44    #endif
-  45    #ifdef TOO_MANY_COMPATIBLE2
+  45    #endif
+  46    #ifdef TOO_MANY_COMPATIBLE2
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.4.res.oracle b/tests/syntax/oracle/generic.4.res.oracle
index 4dea267e9f5cf04b162f789e3847a6714d99c8a0..3b8bc64668e46d3130dbeadd94f7436883f59ddb 100644
--- a/tests/syntax/oracle/generic.4.res.oracle
+++ b/tests/syntax/oracle/generic.4.res.oracle
@@ -1,14 +1,14 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:47: User Error: 
+[kernel] generic.c:48: User Error: 
   multiple compatible types in _Generic selection:
   'void (*)()' and 'void (*)(void)'
-  45    #ifdef TOO_MANY_COMPATIBLE2
-  46      // compatibility modulo implicit arguments
+  46    #ifdef TOO_MANY_COMPATIBLE2
+  47      // compatibility modulo implicit arguments
   
-  47      int a = _Generic(0,
-  48          void (*)():     0,
-  49          void (*)(void): 0);
+  48      int a = _Generic(0,
+  49          void (*)():     0,
+  50          void (*)(void): 0);
   
-  50    #endif
-  51    #ifdef TOO_MANY_COMPATIBLE3
+  51    #endif
+  52    #ifdef TOO_MANY_COMPATIBLE3
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.5.res.oracle b/tests/syntax/oracle/generic.5.res.oracle
index 579b9dde7959145550bcea41382a8e721f40b21d..5c1e7279049cc649936e472d3b2b116f1eb5d75f 100644
--- a/tests/syntax/oracle/generic.5.res.oracle
+++ b/tests/syntax/oracle/generic.5.res.oracle
@@ -1,15 +1,15 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:54: User Error: 
+[kernel] generic.c:55: User Error: 
   controlling expression compatible with more than one association type in _Generic selection:
   controlling expression: '(void (*)())0' (type: void (*)());
   compatible types: void (*)(void), void (*)(int )
-  52      // implicit arguments compatible between first and second selector,
-  53      // but the selectors themselves are not compatible between them
+  53      // implicit arguments compatible between first and second selector,
+  54      // but the selectors themselves are not compatible between them
   
-  54      int a = _Generic((void (*)()) 0,
-  55                       void (*)(int):  0,
-  56                       void (*)(void): 0);
+  55      int a = _Generic((void (*)()) 0,
+  56                       void (*)(int):  0,
+  57                       void (*)(void): 0);
   
-  57    #endif
-  58    #ifdef INCOMPLETE_TYPE
+  58    #endif
+  59    #ifdef INCOMPLETE_TYPE
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.6.res.oracle b/tests/syntax/oracle/generic.6.res.oracle
index fbfffc1be280933ec883e33e343a303d4541dd09..c53dd9c2738d9895b66b26f0f716fc193b587cc6 100644
--- a/tests/syntax/oracle/generic.6.res.oracle
+++ b/tests/syntax/oracle/generic.6.res.oracle
@@ -1,10 +1,10 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:59: User Error: 
+[kernel] generic.c:60: User Error: 
   generic association with incomplete type 'void'
-  57    #endif
-  58    #ifdef INCOMPLETE_TYPE
-  59      int a = _Generic(42, void: 1, default: 2);
+  58    #endif
+  59    #ifdef INCOMPLETE_TYPE
+  60      int a = _Generic(42, void: 1, default: 2);
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  60    #endif
-  61    #ifdef FUNCTION_TYPE
+  61    #endif
+  62    #ifdef FUNCTION_TYPE
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.7.res.oracle b/tests/syntax/oracle/generic.7.res.oracle
index c232c3c417e6f8d49a53f25f9f116dc939d908b2..03f063c8583744504a73b16416ccd9bf9269d900 100644
--- a/tests/syntax/oracle/generic.7.res.oracle
+++ b/tests/syntax/oracle/generic.7.res.oracle
@@ -1,12 +1,12 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:65: User Error: 
+[kernel] generic.c:66: User Error: 
   no compatible types and no default type in _Generic selection:
   controlling expression: '"abc"' (type: char *);
   candidate types: char const *
-  63    #endif
-  64    #ifdef INCOMPATIBLE_QUALIFIED_TYPE
-  65      int a = _Generic("abc", char const *: 0);
+  64    #endif
+  65    #ifdef INCOMPATIBLE_QUALIFIED_TYPE
+  66      int a = _Generic("abc", char const *: 0);
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-  66    #endif
-  67      int ok1 = _Generic("abc", char*: 0);
+  67    #endif
+  68    #ifdef VLA
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.8.res.oracle b/tests/syntax/oracle/generic.8.res.oracle
index fe35717281298c85c4a8ef02888473d4a3b90dce..78569285df29b0e24c4d302c3e8ec06023d6ca9c 100644
--- a/tests/syntax/oracle/generic.8.res.oracle
+++ b/tests/syntax/oracle/generic.8.res.oracle
@@ -1,11 +1,11 @@
 [kernel] Parsing generic.c (with preprocessing)
-[kernel] generic.c:62: 
+[kernel] generic.c:63: 
   syntax error:
-  Location: line 62, column 27, before or at token: int
-  60    #endif
-  61    #ifdef FUNCTION_TYPE
-  62      int a = _Generic(1, void(int): 1);
+  Location: line 63, column 27, before or at token: int
+  61    #endif
+  62    #ifdef FUNCTION_TYPE
+  63      int a = _Generic(1, void(int): 1);
                                    ^
-  63    #endif
-  64    #ifdef INCOMPATIBLE_QUALIFIED_TYPE
+  64    #endif
+  65    #ifdef INCOMPATIBLE_QUALIFIED_TYPE
 [kernel] Frama-C aborted: invalid user input.
diff --git a/tests/syntax/oracle/generic.9.res.oracle b/tests/syntax/oracle/generic.9.res.oracle
index 70bdefa20fded77f7906a06abef980f36e8fc77e..ef373d91c17e019395537108fc0b5d486723d6a9 100644
--- a/tests/syntax/oracle/generic.9.res.oracle
+++ b/tests/syntax/oracle/generic.9.res.oracle
@@ -1,32 +1,10 @@
 [kernel] Parsing generic.c (with preprocessing)
-/* Generated by Frama-C */
-int foo(int i)
-{
-  int __retres;
-  __retres = 0;
-  return __retres;
-}
-
-void void_foo(int i)
-{
-  return;
-}
-
-float cbrtf(float x);
-
-int main(void)
-{
-  int __retres;
-  float tmp;
-  int ok1 = 0;
-  int ok2 = 0;
-  int ok3 = 0;
-  int ok4 = 0;
-  tmp = cbrtf(0.0f);
-  double c = (double)tmp;
-  int ok5 = 0;
-  __retres = 0;
-  return __retres;
-}
-
-
+[kernel] generic.c:71: User Error: 
+  generic association with variably modified type 'int [x]'
+  69      int x = 42;
+  70      int y[x];
+  71      int a = _Generic(y, int[x]: 0, default: 1);
+                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  72    #endif
+  73      int ok1 = _Generic("abc", char*: 0);
+[kernel] Frama-C aborted: invalid user input.