[devel] slang

Dmitry V. Levin ldv на altlinux.org
Вт Апр 9 20:36:08 MSK 2019


On Tue, Apr 09, 2019 at 09:22:15PM +0400, Sergey Y. Afonin wrote:
> On Tuesday 09 April 2019, Mikhail Efremov wrote:
> 
> >> А именно о разнице между спецификацией и конкретной реализацией.
>  
> > Просто нужно осознать, что после того, как в программе случилось
> > UB, она может сделать что угодно, на что ей хватит прав
> 
> Э, нет. После того, как в программе случилось UB (в том виде, в котором это
> обсуждалось), _компилятор_ может сделать какой угодно код, после чего этот
> код может сделать что угодно, на что ему хватит прав. И это уточнение про
> компилятор тут ключевое. Если каким-то образом известно (тесты там, код
> ассемблерный посмотрели промежуточный - мало ли), что какой-то компилятор
> это UB обрабатывает так, как хотелось (пусть так совпало) то скомпилированная
> программа будет делать ровно то, что хотелось, без всяких "что угодно", пока
> её не соберут другим компилятором.

OK, допустим, у нас у всех одинаковое понимание термина UB.

Как теперь исправить все пакеты, в исходниках которых есть такое UB, про
которые мы не можем утверждать, что нам достоверно известно о том, что
скомпилированной код будет делать именно то, что имел в виду автор
исходного кода, содержащего UB?

gcc -fwrapv при первом подозрении на наличие в пакете переполнений
в знаковой арифметике?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 801 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20190409/50e922e6/attachment-0001.bin>


Подробная информация о списке рассылки Devel