Многие разработчики игнорируют методологию статического анализа кода. На самом деле это огромная ошибка, потому что они лишают себя инструментов, которые помогают устранять ошибки на этапе написания кода и экономят время на тестирование и отладку приложений. Одним из факторов такого неразумного поведения является уверенность в том, что компиляторы уже выдают предупреждения для всех опасных конструкций.
Действительно, компиляторы постоянно развиваются и постепенно внедряют диагностику, имеющуюся в анализаторах кода. Но дело в том, что анализаторы тоже продолжают развиваться. Это программы, специализирующиеся на обнаружении ошибок, а это означает, что они всегда будут опережать компиляторы в диагностических возможностях.
Рассмотрим практические примеры и прочитаем статью Андрея Карпова, разработчика статического анализатора кода PVS-Studio: Поиск ошибок в коде компилятора GCC с помощью PVS-Studio.
Да, компилятор C ++, реализованный в GCC, использует много полезных диагностик. Эти диагностики очень полезны, но все же PVS-Studio обнаружил ошибки в коде компилятора.
Разработчики GCC, обсуждая эту статью, пришли к выводу, что было бы полезно реализовать несколько новых диагностик, основанных на предупреждениях PVS-Studio. Это как раз тот случай, как уже упоминалось ранее, когда компиляторы берут диагностику с анализаторов. Мы также должны понимать, что платные инструменты, такие как PVS-Studio, продолжают развиваться и получать все больше диагностических возможностей. Это основная задача PVS-Studio — опережать компиляторы.