https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88523
--- Comment #3 from sasho648 at gmail dot com --- The included phrase in the standard would read something like: If an incomplete structure type is the composite type of a function - it's allowed to be completed inside its prototype in which case a X function is created which type will be evaluated on each instance after its argument values are evaluated.