Сегодня закрыли (без исправлений)
мой репорт с описанием баги в компиляторе VC++: неправильно обрабатывается отрицательное i16 значение.
Вкратце: -1i16 преобразуется в int, а не в short.
Нарваться сложно, но можно.
В текущей VS2019-ой (16.2.2) бага присутствует. Только что проверил.
Будьте осторожны
PS. Кажись, здесь я про неё не писал...
-- Пользователи не приняли программу. Всех пришлось уничтожить. --