(-858993460 * 8) mod 232 ≡ 1717986912.
Ваше сочетание компилятора и процессора считает целые значения по модулю 232.
В стандартном C++ такие вычисления вне закона. Программист обязан следить за тем чтобы промежуточные и окончательные значения в арифметических операциях не приводили к выходу за пределы диапазона int
(в вашем случае [-231, 231 - 1]). Иначе случается неопределённое поведение. Грубо говоря, нет никаких гарантий относительно поведения программы, если случилось переполнение.
В конкретных реализациях C++ вы можете полагаться особенности компилятора. В данном случае программа вычисляет по модулю. Читайте документацию по конкретному компилятору, проверяйте сгенерированный машинный код (ассемблер).
P.S. Чтение неинициализированной переменной - тоже неопределённое поведение. Иногда вы прочтёте мусор, иногда ноль, иногда программа упадёт или начнёт вести себя непредсказуемо. Проверяйте машинный код или следуйте стандарту.
P.P.S. Следуйте стандарту.