title: Declare structure within for?
body: <p>Apple LLVM 9.1.0 with clang-902.0.39.2, using <code>-std=c11</code>, accepts:</p>
  
  <pre><code>typedef struct { int i; float f; } S;
  for (S s = { 0, 0 }; s.i &lt; 25; ++s.i, s.f = i/10.f)
      …
  </code></pre>
  
  <p>but rejects:</p>
  
  <pre><code>for (struct { int i; float f; } s = { 0, 0 }; s.i &lt; 25; ++s.i, s.f = s.i/10.f)
      …
  </code></pre>
  
  <p>with the message:</p>
  
  <blockquote>
    <p>error: declaration of non-local variable in 'for' loop</p>
  </blockquote>
  
  <p>Is Clang correct to reject this, because it violates some constraint in the C standard? Which clause and paragraph? Or is it a Clang bug?</p>