Комментарии 6
Зачем писать для чего некий "инструмент" служит, в самом деле?
А Intel выпустил ControlFlag.
Несколько лет назад вы считали применение машинного обучения бесперспективным. Ссылку на статью, конечно, не приведу.
Ваша позиция с тех пор не изменилась?
Пока не изменилась. Использование машинного обучения в статическом анализе исходного кода программ.
Мы посмотрели на этот ControlFlag, думали может по него какую-то статью обзорную написать. Но там писать не про что. Для кода анализатора PVS-Studio (C++ ядро) выдал всего два бессмысленных сообщения вида:
Ему подозрительно, что 2 соседних if'а имеют return true, а посередине return false. Хм…
Для сравнения, от того-же ASan, на практике гораздо больше прока: Зачем нужен динамический анализ кода, на примере проекта PVS-Studio.
Мы посмотрели на этот 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.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Cppcheck Premium 21.10