Re[3]: инструменты статической проверки кода C++
От: headhunter  
Дата: 03.05.06 14:46
Оценка:
Здравствуйте, menify, Вы писали:

M>Здравствуйте, Plague:


M>>Мы занимаемся исследованием различных инструментов по статической проверке кода

...
P>>интересно было бы взглянуть на твои результаты тестирования этих программ...

M>Официальный документ предоставить пока не могу — Internal Use Only

...
M>Итого, чтобы полностью покрыть статический анализ нужно три инструмента: PC-lint, CodeCheck и RSM (на мой взгляд лучшие). Сумарная стоимость: 240$ + 1000$ + 200$ = 1440$, что на много выгоднее чем покупать QAC++(5000$) или пакет Logiscope (10000$).

M>Когда будет завершено исследование, могу выложить табличку с оценками всех тулов.


Рискну поднять древнюю тему, просто именно сейчас занялся поисками средств статического анализа кода. Хотелось бы узнать, есть ли что-то лучшее чем PC-lint и не появилось ли open-source аналогов для функциональности lint, то есть поиск неявных ошибок. Интересует С++. Есть ли у кого-то положительный опыт использования PC-lint? Что можете сказать о продукте C++test фирмы Parasoft?

Конкретно, может кто решал такую задачу, поделитесь опытом -- надо проиндицировать все неявные приведения типов в программе. Например во фрагменте:

#define CONST1 736u
#define CONST2 764u

unsigned long long f(unsigned long long) {
  unsigned bbb = CONST1;
  return (bbb);
}

unsigned int main() {
  unsigned a = CONST2;
  unsigned long long b = 0;

  b = a;
  f(a);
  return (0);
}


хотелось бы видеть варнинги на следующие строчки:
1) "b = a;"
2) "f(a);"
3) "return (bbb);"

поскольку в них происходят неявные преобразования типов.

Вопрос: можно ли такое устроить с помощью PC-lint?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.