αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ cppcheck 2.6 αžŠαŸ‚αž›αž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžœαž·αž—αžΆαž‚αž€αžΌαžŠαž‹αž·αžαž·αžœαž“αŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαžŸαžΆ C ++ αž“αž·αž„ C

αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžœαž·αž—αžΆαž‚αž€αžΌαžŠαž‹αž·αžαž·αžœαž“αŸ’αž cppcheck 2.6 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž”αŸ’αžšαž—αŸαž‘αž•αŸ’αžŸαŸαž„αŸ—αž“αŸƒαž€αŸ†αž αž»αžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž“αŸ…αž€αŸ’αž“αž»αž„αž—αžΆαžŸαžΆ C αž“αž·αž„ C++ αžšαž½αž˜αž‘αžΆαŸ†αž„αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αž·αž“αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš αžŠαŸ‚αž›αž‡αžΆαžαž½αž™αŸ‰αžΆαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αž„αŸ’αž€αž”αŸ‹αŸ” αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžŠαž»αŸ†αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‡αŸ†αž“αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αžαžΆαž˜αžšαž™αŸˆαž“αŸ„αŸ‡ cppcheck αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž•αŸ’αžŸαŸαž„αŸ— αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹ αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŸαžΆαž€αž›αŸ’αž”αž„ αž αžΎαž™αž€αŸαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž€αžΌαžŠαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžšαž…αž“αžΆαž”αŸαž‘αŸ’αž˜αž€αžΌαžŠαž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‰αŸ‚αž€αž€αžΌαžŠ αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ parser αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž¬αž‰αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ…αž–αžΈ Clang αŸ” αžœαžΆαž€αŸαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž•αž„αžŠαŸ‚αžšαž“αžΌαžœαžŸαŸ’αž‚αŸ’αžšαžΈαž” donate-cpu.py αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž’αž“αž’αžΆαž“αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΌαžŠαžŸαž αž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž‰αŸ’αž…αž”αŸ‹ Debian αŸ” αž€αžΌαžŠαž”αŸ’αžšαž—αž–αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αžšαŸ„αž˜αž’αžΆαž‡αŸ’αž‰αžΆαž”αŸαžŽαŸ’αžŽ GPLv3 αŸ”

αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž“αŸƒ cppcheck αž‚αžΊαž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαžšαž…αž“αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž‚αŸ’αžšαŸ„αŸ‡αžαŸ’αž“αžΆαž€αŸ‹αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ” αž‚αŸ„αž›αžŠαŸ…αž€αŸαžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž—αžΆαž–αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αž˜αž·αž“αž–αž·αžαž•αž„αžŠαŸ‚αžšαŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαŸ– αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αžœαžαŸ’αžαž»αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“, αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αžŠαŸ„αž™αžŸαžΌαž“αŸ’αž™, αž…αŸ†αž“αž½αž“αž‚αžαŸ‹αž›αžΎαžŸ, αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸŠαžΈαžαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ, αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ, αž”αž‰αŸ’αž αžΆαž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†, αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒ STL, αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αž‘αŸ’αžšαž“αž·αž…αž‘αž‘αŸ, αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αž‘αŸ…αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž€αžΆαžšαžšαžαŸ‹αž›αžΎαžŸαžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžαŸαžšαžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαŸ–

  • αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αžŸαŸ’αž“αžΌαž›αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚αŸ–
    • αž’αžœαžαŸ’αžŠαž˜αžΆαž“αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžαž½αž˜αž»αžαž„αžΆαžš;
    • αž€αžαŸ‹αžαŸ’αžšαžΆαž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαž½αžαžŸαŸŠαžΈαž‚αŸ’αž“αžΆ αž€αŸ†αžŽαžαŸ‹αž₯αžšαž·αž™αžΆαž”αžαžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹;
    • αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‚αžΊαž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αžαž˜αŸ’αž›αŸƒαžαŸ†αžŽαžΆαž„αž“αŸƒαž”αŸ’αžšαž—αŸαž‘αŸ”
    • αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž˜αž·αž“αž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αžαŸ’αžšαž‘αž”αŸ‹ std::move(local);
    • αž―αž€αžŸαžΆαžšαž˜αž·αž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αžΆαž“αž“αž·αž„αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ (αžŸαŸ’αž‘αŸ’αžšαžΈαž˜);
  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆ Unix αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŸαžΆαžšαžšαŸ„αž‚αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž–αžŽαŸŒαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαžœαž·αž—αžΆαž‚αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ ValueFlow αŸ” αž”αŸ’αžšαžΎ delta αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αŸ…αž–αŸαž›αž‚αžŽαž“αžΆαž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžšαžœαžΆαž„αž’αžαŸαžšαž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹αž–αžΈαžšαŸ”
  • αž…αŸ’αž”αžΆαž”αŸ‹αžŠαŸ‚αž›αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž‡αžΈαžαžΌαžαžΉαž“ "αž€αŸ†αžŽαžαŸ‹" αž€αŸαž’αžΆαž…αž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„ #include;
  • αžŸαŸ’αž›αžΆαž€αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž’αžΆαž…β€‹αž˜αžΆαž“β€‹αžŸαŸ’αž›αžΆαž€ αž αžΎαž™αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž˜αž»αžαž„αžΆαžšαž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ αžŠαŸ‚αž›αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž’αž»αž„αžŠαžΌαž…αž‡αžΆ std::size, std::empty, std::begin, std::end αŸ”αž›αŸ” αž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ yld αž¬αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹;
  • αžŸαŸ’αž›αžΆαž€αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž’αžΆαž…β€‹αž˜αžΆαž“β€‹αžŸαŸ’αž›αžΆαž€ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ’αžšαž“αž·αž…αž†αŸ’αž›αžΆαžαžœαŸƒαžŠαŸ‚αž›αž˜αžΆαž“αž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αž–αž·αžŸαŸαžŸαŸ” αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž€αžΆαžšβ€‹αž–αŸ’αžšαž˜αžΆαž“β€‹αž˜αž½αž™β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž…αŸαž‰β€‹αž•αŸ’αžŸαžΆαž™β€‹αž’αŸ†αž–αžΈβ€‹αž€αžΆαžšβ€‹αž™αŸ„αž„β€‹αž‘αŸ…β€‹αž›αžΎβ€‹αž”αŸ’αžšαž—αŸαž‘β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž…αž„αŸ’αž’αž»αž›β€‹αž†αŸ’αž›αžΆαžαžœαŸƒβ€‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”
  • αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžš β€”cppcheck-build-dir;
  • htmlreport αž₯αž‘αžΌαžœαž“αŸαŸ‡αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ (αžŠαŸ„αž™αž”αŸ’αžšαžΎ git αž”αž“αŸ’αž‘αŸ„αžŸ);
  • αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž’αžαŸαžšαžŠαŸ‚αž›αž˜αž·αž“αžαŸαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αžΆαž…αž‡αžΆ;
  • αž€αŸ†αž αž»αžŸαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ† αž“αž·αž„αž…αŸ†αžŽαž»αž…αžαŸ’αžœαŸ‡αžαžΆαžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž–αžΈ Misra C 2012 αžšαž½αž˜αž‘αžΆαŸ†αž„αžœαž·αžŸαŸ„αž’αž“αž€αž˜αŸ’αž˜ 1 αž“αž·αž„αžœαž·αžŸαŸ„αž’αž“αž€αž˜αŸ’αž˜ 2 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰ αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž…αŸ’αž”αžΆαž”αŸ‹ 1.1, 1.2 αž“αž·αž„ 17.3 αŸ” αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ 1.1 αž“αž·αž„ 1.2 αžαŸ’αžšαžΌαžœαžαŸ‚αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„αŸ” αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ 17.3 αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αž’αŸ’αž“αž€αž…αž„αž€αŸ’αžšαž„αžŠαžΌαž…αž‡αžΆ GCC αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹