ืฉื—ืจื•ืจ ืฉืœ cppcheck 2.6, ืžื ืชื— ืงื•ื“ ืกื˜ื˜ื™ ืœืฉืคื•ืช C++ ื•-C

ืฉื•ื—ืจืจื” ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ืžื ืชื— ื”ืงื•ื“ ื”ืกื˜ื˜ื™ cppcheck 2.6, ื”ืžืืคืฉืจืช ืœื–ื”ื•ืช ืžื—ืœืงื•ืช ืฉื•ื ื•ืช ืฉืœ ืฉื’ื™ืื•ืช ื‘ืงื•ื“ ื‘ืฉืคื•ืช C ื•-C++, ื›ื•ืœืœ ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืชื—ื‘ื™ืจ ืœื ืกื˜ื ื“ืจื˜ื™, ื”ืื•ืคื™ื™ื ื™ ืœืžืขืจื›ื•ืช ืžืฉื•ื‘ืฆื•ืช. ืžืกื•ืคืง ืื•ืกืฃ ืฉืœ ืชื•ืกืคื™ื ืฉื“ืจื›ื ืžืฉื•ืœื‘ืช cppcheck ืขื ืžืขืจื›ื•ืช ืคื™ืชื•ื—, ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื” ื•ื‘ื“ื™ืงื•ืช ืฉื•ื ื•ืช, ื•ืžืกืคืงืช ื’ื ืชื›ื•ื ื•ืช ื›ื’ื•ืŸ ื‘ื“ื™ืงืช ืชืื™ืžื•ืช ืงื•ื“ ืœืกื’ื ื•ืŸ ื”ืงื•ื“. ื›ื“ื™ ืœื ืชื— ืงื•ื“, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืžื ืชื— ืžืฉืœืš ืื• ื‘ืžื ืชื— ื—ื™ืฆื•ื ื™ ืž-Clang. ื”ื•ื ื›ื•ืœืœ ื’ื ืืช ื”ืกืงืจื™ืคื˜ donate-cpu.py ื›ื“ื™ ืœืกืคืง ืžืฉืื‘ื™ื ืžืงื•ืžื™ื™ื ืœื‘ื™ืฆื•ืข ืขื‘ื•ื“ืช ืกืงื™ืจืช ืงื•ื“ ืฉื™ืชื•ืคื™ืช ืขื‘ื•ืจ ื—ื‘ื™ืœื•ืช ื“ื‘ื™ืืŸ. ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืคืจื•ื™ืงื˜ ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ GPLv3.

ื”ืคื™ืชื•ื— ืฉืœ cppcheck ืžืชืžืงื“ ื‘ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœื”ืชื ื”ื’ื•ืช ืœื ืžื•ื’ื“ืจืช ื•ืฉื™ืžื•ืฉ ื‘ืขื™ืฆื•ื‘ื™ื ืžืกื•ื›ื ื™ื ืžื ืงื•ื“ืช ืžื‘ื˜ ื‘ื˜ื™ื—ื•ืชื™ืช. ื”ืžื˜ืจื” ื”ื™ื ื’ื ืœืžื–ืขืจ ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ื›ื•ื–ื‘ื•ืช. ื‘ื™ืŸ ื”ื‘ืขื™ื•ืช ืฉื–ื•ื”ื•: ืžืฆื‘ื™ืขื™ื ืœืื•ื‘ื™ื™ืงื˜ื™ื ืฉืื™ื ื ืงื™ื™ืžื™ื, ื—ืœื•ืงื•ืช ื‘ืืคืก, ื’ืœื™ืฉื•ืช ืฉืœ ืžืกืคืจื™ื ืฉืœืžื™ื, ืคืขื•ืœื•ืช ืฉื’ื•ื™ื•ืช ื‘-bit shift, ื”ืžืจื•ืช ืฉื’ื•ื™ื•ืช, ื‘ืขื™ื•ืช ื‘ืขื‘ื•ื“ื” ืขื ื–ื™ื›ืจื•ืŸ, ืฉื™ืžื•ืฉ ืœื ื ื›ื•ืŸ ื‘-STL, ื”ืคื ื™ื™ืช ืžืฆื‘ื™ืข null, ืฉื™ืžื•ืฉ ื‘ื‘ื“ื™ืงื•ืช ืœืื—ืจ ื”ื’ื™ืฉื” ื‘ืคื•ืขืœ. ืœืžืื’ืจ, ื—ืจื™ืคื•ืช ืžืื’ืจ, ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื™ื ืœื ืžืื•ืชื—ืœื™ื.

ื‘ื’ืจืกื” ื”ื—ื“ืฉื”:

  • ื”ื‘ื“ื™ืงื•ืช ื”ื‘ืื•ืช ื ื•ืกืคื• ืœืœื™ื‘ืช ื”ื ืชื—:
    • ื”ื™ืขื“ืจ ืžืคืขื™ืœ ื”ื—ื–ืจื” ื‘ื’ื•ืฃ ื”ืคื•ื ืงืฆื™ื”;
    • ืจื™ืฉื•ื ื ืชื•ื ื™ื ื—ื•ืคืคื™ื, ื”ื’ื“ืจืช ื”ืชื ื”ื’ื•ืช ืœื ืžื•ื’ื“ืจืช;
    • ื”ืขืจืš ืฉืžืฉื•ื•ื” ื ืžืฆื ืžื—ื•ืฅ ืœื™ื™ืฆื•ื’ ื”ืขืจืš ืฉืœ ื”ื˜ื™ืคื•ืก;
    • ืื•ืคื˜ื™ืžื™ื–ืฆื™ื™ืช ื”ืขืชืงื” ืื™ื ื” ื—ืœื” ืขืœ ื”ื—ื–ืจื” std::move(local);
    • ืœื ื ื™ืชืŸ ืœืคืชื•ื— ืืช ื”ืงื•ื‘ืฅ ื‘ื•-ื–ืžื ื™ืช ืœืงืจื™ืื” ื•ื›ืชื™ื‘ื” ื‘ื–ืจืžื™ื ืฉื•ื ื™ื (ื–ืจื);
  • ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช Unix, ื”ื•ืกืคื” ืชืžื™ื›ื” ืœื”ืฆื’ืช ื”ื•ื“ืขื•ืช ืื‘ื—ื•ืŸ ื‘ืฆื‘ืขื™ื ืฉื•ื ื™ื;
  • ื”ื•ืกื™ืฃ ื ื™ืชื•ื— ืกืžืœื™ ืขื‘ื•ืจ ValueFlow. ืžืฉืชืžืฉ ื‘ื“ืœืชื ืคืฉื•ื˜ื” ื‘ืขืช ื—ื™ืฉื•ื‘ ื”ื”ืคืจืฉ ื‘ื™ืŸ ืฉื ื™ ืžืฉืชื ื™ื ืœื ื™ื“ื•ืขื™ื;
  • ื”ื›ืœืœื™ื ื”ืžืฉืžืฉื™ื ืœืจืฉื™ืžืช ื”ืืกื™ืžื•ื ื™ื "ืœื”ื’ื“ื™ืจ" ื™ื›ื•ืœื™ื ื’ื ืœื”ืชืื™ื ืœ-#include;
  • ืชื’ ืกืคืจื™ื™ื” ื™ื›ื•ืœ ื›ืขืช ืœื”ื›ื™ืœ ืชื’ , ื•ื‘ื”ืชืื ืœืคื•ื ืงืฆื™ื•ืช ื”ื—ื™ื ืžื™ื•ืช, ืฉื™ื›ื•ืœื•ืช ืœืงื‘ืœ ืžื™ื›ืœื™ื ื›ื’ื•ืŸ std::size, std::empty, std::begin, std::end ื•ื›ื•'. ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืชืฉื•ืื” ืื• ืคืขื•ืœื” ืขื‘ื•ืจ ืžื—ื‘ืจื™ื;
  • ืชื’ ืกืคืจื™ื™ื” ื™ื›ื•ืœ ื›ืขืช ืœื”ื›ื™ืœ ืชื’ ืขื‘ื•ืจ ืžืฆื‘ื™ืขื™ื ื—ื›ืžื™ื ืฉื™ืฉ ืœื”ื ื‘ืขืœื•ืช ื™ื™ื—ื•ื“ื™ืช. ื›ืขืช ืžื•ืคืฆืช ืื–ื”ืจื” ืขืœ ืื–ื›ื•ืจื™ื ืžืฉืชืœืฉืœื™ื ืœืกื•ื’ื™ื ืืœื” ืฉืœ ืžืฆื‘ื™ืขื™ื ื—ื›ืžื™ื;
  • ืชื™ืงื ื• ื‘ืขื™ื•ืช ื‘ืขื™ื‘ื•ื“ ื”ืคืจืžื˜ืจ -cppcheck-build-dir;
  • htmlreport ื™ื›ื•ืœ ื›ืขืช ืœื”ืฆื™ื’ ืžื™ื“ืข ืขืœ ื”ืžื—ื‘ืจ (ื‘ืืžืฆืขื•ืช git blame);
  • ืื–ื”ืจื•ืช ืžื•ืจื—ื‘ื•ืช ืœื’ื‘ื™ ืžืฉืชื ื™ื ืฉืื™ื ื ืงื‘ื•ืขื™ื, ืืš ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช;
  • ื”ืฉื’ื™ืื•ืช ื•ื”ื—ืกืจื•ื ื•ืช ื”ืžืฆื˜ื‘ืจื™ื ืฉืœ ื”ืžื ืชื— ืชื•ืงื ื•.

ื‘ื ื•ืกืฃ, ื”ื”ืžื—ืื•ืช ืžืžื™ืกืจื ื’' 2012, ืœืจื‘ื•ืช ืชื™ืงื•ืŸ 1 ื•ืชื™ืงื•ืŸ 2, ื™ื•ืฉืžื• ื‘ืžืœื•ืืŸ, ืœืžืขื˜ ื›ืœืœื™ื 1.1, 1.2 ื•-17.3. ื‘ื“ื™ืงื•ืช 1.1 ื•-1.2 ื—ื™ื™ื‘ื•ืช ืœื”ืชื‘ืฆืข ืขืœ ื™ื“ื™ ื”ืžื”ื“ืจ. ืื™ืžื•ืช 17.3 ื™ื›ื•ืœ ืœื”ืชื‘ืฆืข ืขืœ ื™ื“ื™ ืžื”ื“ืจ ื›ื’ื•ืŸ GCC.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”