Here's a question: Why do we set TYPE_SIZE on VOID_TYPE at all? Because an unset TYPE_SIZE means an complete type and VOID_TYPE isn't. Perhaps a shorter answer is "why not?".