Re[11]: Откуда эта лютая любовь к знаковым целым?
От: vopl Россия  
Дата: 07.05.20 17:46
Оценка:
Здравствуйте, Reset, Вы писали:

N>>Но тут проблема не типа как такового — к моменту прихода оптимизаций типы уже стёрты, а диапазона значений. Проверка выбрасывается в правом случае потому, что после конверсии end-beg в беззнаковое оказывается, что в условии немедленного выхода "0 >= (unsigned size_t)(end-beg)" случай "больше" невозможен и его можно не проверять. Но это корректно только до тех пор, пока реально end >= beg! Вы косвенно, за счёт неявной конверсии к беззнаковому в этом сравнении, гарантируете это условие (и получите очень больно, если нарушите его).


R>Не очень понимаю, про какие проверки вы все говорите: godbolt (смотреть на серенькое и желтенькое, т.е. содержимое цикла).


Добавь -m32, или замени int на long, чтобы размер индекса совпадал с разрядностью платформы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.