Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Так даже ПО в самолетах до сих пор обновляется дискетами.

Ни разу не было необходимости в таком списке, и сложно представить практический случай. Думаю всегда можно найти более простые подходы.

Интересно какие GPU использует Apple на всей своей линейке. PVR Rogue и производное от него?
Только ради этого и начал читать статью
А при чем здесь strict aliasing? Тут уж программист должен следить за выравниванием.
Пользуюсь GYP для сборки игры под Windows, macOS, iOS, и сервера под linux. Очень нравится, но автору статьи вряд ли подойдет. Гугл проект почти не поддерживает, но на гитхабе недавно появился форк, где энтузиасты во всю коммитят изменения. Изначально пытался пользоваться cmake, но по ряду причин он мне не подошел.
Как может проявляться UB при чтении из 2 указателей? Компилятор просто выкинет весь код со вторым указателем? Все примеры нарушения strict aliasing что я видел обязательно содержат запись. Насчет одной функции, то каждая функция ведь компилируется отдельно, и затем в других участках кода просто производится ее вызов. Для гарантии от инлайна функции можно помещать в разные единицы компиляции, и конечно же не включать link-time optimization.
Одно время долго ломал голову над проблемой strict aliasing, некоторые писали что большинство кодовой базы на github нарушает это правило. Но после долгих раздумий я пришел к выводу, что единственный способ получить UB — это запись и чтение в одном и том же участке памяти в пределах одной функции (включая inline). А встретить такое в реальных проектах довольно сложно.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность