The block-sigs branch has this testcase in loop.wast:
(assert_invalid
(module (func $type-cont-last-void-vs-empty (result i32)
(loop (br 0 (nop)))
))
"type mismatch"
)
The end of the function is unreachable, so implementations shouldn't be required to issue a type error here, by my understanding of the rules.