Рассмотрим технологию межмодульного анализа C++ проектов. Поговорим о том, как эта технология влияет на качество предупреждений, выдаваемых компиляторами и анализаторами кода. Во время работы анализатор проверяет только один исходный файл, не имея информации о том, что находится в других файлах проекта. Межмодульный анализ позволяет дать информацию анализатору о полной структуре проекта, делая анализ более точным и качественным. Это очень схоже с задачей оптимизации на этапе компоновки (Link Time Optimization, LTO). Таким образом анализатор может узнать поведение той или иной внешней функции из другого файла проекта и выдать срабатывание, к примеру, на разыменование нулевого указателя, переданного как аргумент внешней функции.
Доклад будет интересен С++ программистам, которые хотят больше узнать о возможностях компилятора, посмотреть на технологии, которые используются в статическом анализе, и посмотреть интересные ошибки, найденные в известных проектах с помощью этих технологий.
0