[Перевод] Неопределённое поведение != Небезопасное программирование
|
|
Среда, 24 Января 2018 г. 08:10
+ в цитатник
От переводчика:
Предлагаю вашему вниманию перевод двух постов из блога John Regehr. Я решил объединить их в одной публикации потому, что, во первых, они имеют небольшой объём, и, во-вторых, второй пост является продолжением первого, и является ответом на комментарий к первому посту на Hacker News.
Ссылка на первый пост: https://blog.regehr.org/archives/1467
Ссылка на второй пост:https://blog.regehr.org/archives/1476
Часть 1. Неопределённое поведение != Небезопасное программирование
Неопределённое поведение (UB) в C и C++ представляет собой опасность для разработчиков, особенно если код работает с недоверенными данными. Менее известно, что неопределённое поведение существует в промежуточном представлении (IR) большинства оптимизирующих AOT компиляторов. Например, LLVM IR имеет значение
undef и
«отравленные» значения в дополнение к взрывоопасному UB языка С. Когда люди начинают беспокоиться об этом, типичная реакция такова: “Что? LLVM IR так же плох, как и C!” Эта статья объясняет, почему считать так неверно.
Читать дальше ->
https://habrahabr.ru/post/343882/
Метки:
author 32bit_me
программирование
компиляторы
swift
open source
llvm
undefined behavior
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-