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

Комментарии 6

Зачем писать для чего некий "инструмент" служит, в самом деле?

Подразумевается, что каждый подписанный на C \ С++ хаб, слышал про Cppcheck :)

Но ведь это даже из названия будет очевидно. Cpp и check же. А вообще, и правда, думаю любой разработчик C++ с опытом 3+ года о нём слышал (именно чистый C++, не C/C++).

А Intel выпустил ControlFlag.
Несколько лет назад вы считали применение машинного обучения бесперспективным. Ссылку на статью, конечно, не приведу.
Ваша позиция с тех пор не изменилась?

Пока не изменилась. Использование машинного обучения в статическом анализе исходного кода программ.
Мы посмотрели на этот ControlFlag, думали может по него какую-то статью обзорную написать. Но там писать не про что. Для кода анализатора PVS-Studio (C++ ядро) выдал всего два бессмысленных сообщения вида:
template <typename F, std::enable_if_t<std::is_invocable_r_v<bool, F, const Ptree*> , int> = 0>
[[nodiscard]] bool FindIf(const Ptree* tree, F f)
{
  while (tree != nullptr)
  {
    if (f(tree))
      return true;
    if (tree->IsLeaf())
      return false;
    if (FindIf(tree->Car(), f)) 
      return true;              // <=
    tree = tree->Cdr();
  }
  
  return false;
}

Ему подозрительно, что 2 соседних if'а имеют return true, а посередине return false. Хм…

Для сравнения, от того-же ASan, на практике гораздо больше прока: Зачем нужен динамический анализ кода, на примере проекта PVS-Studio.

Я буду ссылаться на этот комментарий, когда зайдёт речь о несравнимости анализаторов разных типов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий