clang как бесплатный lint или 2 бага в stlport за 5 минут
От: SleepyDrago Украина  
Дата: 25.05.11 17:08
Оценка: 17 (8) +1
Доброе время суток!
читая здесь про то как инженеры гугля используют clang для поиска ошибок в своей маленькой мультимиллионной базе кода я сказал себе "а чем мы хуже?"

И не долго думая в виртуалке для экспериментов с линуксом установил clang и в мейкфайле проекта в пункте
%.o : %.cpp

заменил g++ -> clang и запустил make.
В результате кроме всего прочего нашлось и вот такое в stlport 5.2.1 bug ticket

в файле stlport/stl/_fstream.c
  bool __ok = this->is_open();

  if (_M_in_output_mode) {
    __ok = __ok && !_Traits::eq_int_type(this->overflow(traits_type::eof()),
                                         traits_type::eof());
    __ok == __ok && this->_M_unshift();
//тут stlport/stl/_fstream.c:87:10: warning: self-comparison always evaluates to true
  }
  else if (_M_in_input_mode)
      this->_M_exit_input_mode();

...

строка с ошибкой разумеется подразумевалась как
    __ok = __ok && this->_M_unshift();


Ну и мелочь типа использования шаблона строк до его определения в стримах, которая шла уже не как warning.

Рекомендую к использованию!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.