Aren't they only allowed at the *end* of structs ? That's what the documentation implies (though it's less clear that it could be) but there's no code to check for it. Note that zero-length arrays should be allowed anywhere, but everywhere but the end they really *are* zero length and aren't extendable.