Correctly codegen unions and structs when they are inside other unions and structs