Релиз Clang с новой технологией проверки безопасности кода

Увидел свет новый выпуск являющегося частью проекта LLVM компилятора Clang с технологией SAFECode.Данная технология предназначена для отслеживания возможных проблем работы с памятью в разрабатываемом приложении, при этом не изменяет поведение компилятора, когда неактивна. Включить её можно через указание специального ключа командной строки при сборке. Преимуществами по сравнению с таким инструментом как Valgrind являются:
более информативные сообщения об ошибках;
возможность оптимизации некоторых run-time проверок;
отсутствие динамической трансляции как у Valgrind;
более точно определяет структуру программы, так как знает расположение границ отдельного стека и глобальных объектов (для поиска данных границ Valgrind использует эвристические методы).

Сейчас технология позволяет отслеживать разыменования указателей, которые могут спровоцировать переполнение буфера. В дальнейшем планируется внести из проекта SAFECode в Clang:
выявление некорректного доступа к памяти (указатели на несуществующий или удаленный объект);
определение неправильных вызовов функции free(), например, двойное освобождение выделенной памяти;
определение использования неинициализированных указателей;
выявление ошибок при работе с памятью, вызванных неправильным использованием функций стандартной библиотеки;
дополнительные оптимизации, включая удаление проверок корректности типов на этапе загрузки/сохранения и вынос за пределы циклов.
Clang это фронт-энд компиляторов С/С++, Objective-C, который разрабатывается на замену GCC в BSD-системах. Интересен может быть также крупным корпорациям благодаря лицензии BSD. При помощи Clang уже удалось собрать ядро Linux и фреймворк Qt. Исходный код Страница проекта