these are signed, so you‘re getting -2^16... so many warnings to emit!
/edit: had that mixed up in my head. Interestingly, clang does warn about the overflow:
main.c:6:17: warning: implicit conversion from 'int'
to 'int16_t' (aka 'short') changes value from
65536 to 0 [-Wconstant-conversion]
int16_t s16 = 65536;
/edit: had that mixed up in my head. Interestingly, clang does warn about the overflow: