在内部声明结构?

Eri*_*hil 5 c struct for-loop clang language-lawyer

带有clang-902.0.39.2的Apple LLVM 9.1.0,使用-std=c11,接受:

typedef struct { int i; float f; } S;
for (S s = { 0, 0 }; s.i < 25; ++s.i, s.f = i/10.f)
    …
Run Code Online (Sandbox Code Playgroud)

但拒绝:

for (struct { int i; float f; } s = { 0, 0 }; s.i < 25; ++s.i, s.f = s.i/10.f)
    …
Run Code Online (Sandbox Code Playgroud)

随着消息:

错误:'for'循环中声明非局部变量

Clang是否正确拒绝这一点,因为它违反了C标准中的某些约束?哪个条款和段落?或者它是一个Clang bug?