Based on context it appears reason should be an unsigned 8-bit field.
/tank/emaste/src/freebsd-clang-import/sbin/iscontrol/fsm.c:612:25: error: implicit conversion from 'int' to 'char' changes value from 128 to -128 [-Werror,-Wconstant-conversion] p->reason = BIT(7) | 0; ~ ~~~~~~~^~~ 1 error generated. *** [fsm.o] Error code 1 (ignored)
Oddly I can't find any user of logout_req(_t)? other than the one in sbin/iscontrol/fsm.c