LINUX.ORG.RU

История изменений

Исправление rmammoth, (текущая версия) :

Так в любом языке при изменении уровня оптимизации по скорости тоже подобные вещи пролазят, потому что лишние вызовы и инструкции нужно удалять.

В C/C++ код

if(x != 0 && y/x > 100) { /* some code */ }

никогда не приведет к делению на 0. Независимо от опций компиляции, оптимизаций и т.д. Разве что при баге в компиляторе, но на то он и баг.

Что мы упустим при этом?

Мы получим трудноуловимую ошибку, зависящую от опций компиляции, только и всего.

Исходная версия rmammoth, :

Так в любом языке при изменении уровня оптимизации по скорости тоже подобные вещи пролазят, потому что лишние вызовы и инструкции нужно удалять.

В C/C++ код

if(x != 0 && y/x > 100) { /* some code */ }

никогда не приведет к делению на 0. Независимо от опций компиляции, оптимизаций и т.д. Разве что при баге в компиляторе, но на то он и баг.