title: GOTO before local variable
body: <p>Does the following piece of code constitute undefined behaviour, since I am jumping before the variable declaration and using it via a pointer? If so, are there differences between the standards?</p>
  
  <pre class="lang-c prettyprint-override"><code>int main() {
    int *p = 0;
  label1: 
    if (p) {
      printf("%d\n", *p);
      return 0;
    }
    int i = 999;
    p = &amp;i;
    goto label1;
    return -1;
  }
  </code></pre>