The __dead definition in defines.h redefines it to be __attribute__(noreturn) -- which works fine if the OS's sys/cdefs.h uses the same definition, or if the symbol wasn't previously defined. However, Interix uses (and provides) the older BSD definition for __dead, which is "volatile". That can't live after the arguments; it would have to be placed before the return type. A better solution here would be to use __attribute__(noreturn) explicitly and do away with playing __dead (pun intended).
Created attachment 1020 [details] Patch removing __dead and using __attribute__(noreturn) explicitly
Thanks, this has now been done. It will be in tomorrow's snaps and the 5.1 release.
Mass update RESOLVED->CLOSED after release of openssh-5.1