title: C : stack memory, goto and "jump into scope of identifier with variably modified type",
body: <p>I found that this refuses to compile :</p>
  
  <pre><code>int test_alloc_stack(int size){
      if(0) goto error; // same issue whatever conditional is used
      int apply[size];
      give_values(apply,size);
      return 1;
      error:
          return 0;
  }
  </code></pre>
  
  <p>The error I get is : "jump into scope of identifier with variably modified type".
  Eliminating the line with "goto" and the jump to error solves the issues.</p>
  
  <p>If I use dynamic allocation for apply, then the problem also disappear. This compiles fine:</p>
  
  <pre><code> int test_alloc_heap(int size){
      if(0) goto error;
      int * apply = calloc(sizeof(int),size);
      give_values(apply,size);
      free(apply);
      return 1;
      error : return 0;
  }
  </code></pre>
  
  <p>What is going on ?</p>