Добрался до сути:
Ответ на: комментарий от slapin 21.08.2018 4:23:54 писал(а):
Компилятор сщитает что результатом работы цикла не может быть отрицательное значение в r (кроме как через переполнение которое UB). А следовательно последняя команда (r & 0x7fffffff) - лишняя так как никогда (кроме UB на которое пофиг) не меняет результат. Вот он ее и выкинул...
Да, у меня первый рефлекс тоже был поставить всё на
unsigned, и константу снабдить суффиксом
U. Кроме того, нагуглить размеро-независимый способ задать ту же константу.
-- 27.08.2018 00:56:09 --Оттуда же хорошая цитата (под которой почти подпишусь):
Цитата:
си — это макроассемблер pdp-11. если ты используешь другой процессор, то си — это сложная (и полная костылей) иллюзия того, что другие процессоры эмулируют поведение pdp-11.