The function outliner uses a struct with one field per output id as the return type of the outlined function. If there are void output ids, which there can be e.g. if the region being outlined involves calls to void functions whose return values are referenced in OpPhi instructions, then the struct ends up with void fields, which is illegal.