ืžืขืœื“ื•ื ื’ ืคื•ืŸ cppcheck 2.6, ืึท ืกื˜ืึทื˜ื™ืง ืงืึธื“ ืึทื ืึทืœื™ื–ืขืจ ืคึฟืึทืจ C ++ ืื•ืŸ C ืฉืคึผืจืึทื›ืŸ

ื ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืกื˜ืึทื˜ื™ืง ืงืึธื“ ืึทื ืึทืœื™ื–ืขืจ cppcheck 2.6 ืื™ื– ื‘ืืคืจื™ื™ื˜, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืคืึทืจืฉื™ื“ืŸ ืงืœืืกืŸ ืคื•ืŸ ืขืจืจืึธืจืก ืื™ืŸ ืงืึธื“ ืื™ืŸ ื“ื™ C ืื•ืŸ C ++ ืฉืคึผืจืึทื›ืŸ, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื•ื•ืขืŸ ืื™ืจ ื ื•ืฆืŸ ื ื™ื˜-ื ืึธืจืžืึทืœ ืกื™ื ื˜ืึทืงืก, ื˜ื™ืคึผื™ืฉ ืคึฟืึทืจ ืขืžื‘ืขื“ื™ื“ ืกื™ืกื˜ืขืžืขืŸ. ื ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืคึผืœื•ื’ื™ื ืก ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš ื•ื•ืึธืก cppcheck ืื™ื– ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืžื™ื˜ ืคืึทืจืฉื™ื“ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืื•ืŸ ื˜ืขืกื˜ื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ, ืื•ืŸ ืื•ื™ืš ื’ื™ื˜ ืึทื–ืึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ื™ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืงืึธื“ ื”ืขืกืงืขื ืžื™ื˜ ื“ื™ ืงืึธื“ ื ื•ืกื—. ืฆื• ืคึผืึทืจืกื™ืจืŸ ืงืึธื“, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืคึผืึทืจืกืขืจ ืึธื“ืขืจ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคึผืึทืจืกืขืจ ืคึฟื•ืŸ Clang. ืขืก ืื•ื™ืš ื›ื•ืœืœ ื“ื™ donate-cpu.py ืฉืจื™ืคื˜ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื”ื™ื’ืข ืจืขืกื•ืจืกืŸ ืฆื• ื˜ืึธืŸ ืžื™ื˜ืึทืจื‘ืขื˜ ืงืึธื“ ืจืขืฆืขื ื–ื™ืข ืึทืจื‘ืขื˜ ืคึฟืึทืจ ื“ืขื‘ื™ืึทืŸ ืคึผืึทืงืึทื“ื–ืฉืึทื–. ื“ืขืจ ืžืงื•ืจ ืงืึธื“ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืื•ื ื˜ืขืจ ื“ื™ GPLv3 ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ cppcheck ืื™ื– ืคืึธื•ืงื™ืกื˜ ืื•ื™ืฃ ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืคึผืจืึธื‘ืœืขืžืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื•ื ื“ืขืคื™ื ืขื“ ื ืึทื˜ื•ืจ ืื•ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ื–ื™ื™ื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขืคืขืจืœืขืš ืคึฟื•ืŸ ืึท ื–ื™ื›ืขืจืงื™ื™ึทื˜ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’. ื“ืขืจ ืฆื™ืœ ืื™ื– ืื•ื™ืš ืฆื• ืžื™ื ืึทืžื™ื™ื– ืคืึทืœืฉ ืคึผืึทื–ืึทื˜ื™ื•ื•ื–. ืฆื•ื•ื™ืฉืŸ ื“ื™ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืคึผืจืึธื‘ืœืขืžืก: ืึธื ื•ื•ื™ื™ึทื– ืฆื• ื ื™ื˜-ืขื’ื–ื™ืกื˜ืึทื ื˜ ืึทื‘ื“ื–ืฉืขืงืฅ, ื“ื™ื•ื•ื™ื–ืฉืึทื ื– ื“ื•ืจืš ื ื•ืœ, ื™ื ื˜ืึทื“ื–ืฉืขืจ ืึธื•ื•ื•ืขืจืคืœืึธื•ื–, ืคืึทืœืฉ ื‘ื™ืกืœ ื™ื‘ืขืจืจื•ืง ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืคืึทืœืฉ ืงืึทื ื•ื•ืขืจื–ืฉืึทื ื–, ืคึผืจืึธื‘ืœืขืžืก ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื–ื›ึผืจื•ืŸ, ืคืึทืœืฉ ื ื•ืฆืŸ ืคื•ืŸ STL, ื ืึทืœ ื˜ื™ื™ึทื˜ืœ ื“ืขืจืคืขืจืขื ืกืขืก, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื˜ืฉืขืงืก ื ืึธืš ื“ื™ ืคืึทืงื˜ื™ืฉ ืึทืงืกืขืก ืฆื• ื“ื™ ื‘ืึทืคืขืจ, ื‘ืึทืคืขืจ ืึธื•ื•ื•ืขืจืจืึทื ื–, ื ื•ืฆืŸ ืคื•ืŸ ืึทื ื™ื ื™ืฉื™ืึทืœื™ื™ื–ื“ ื•ื•ืขืจื™ืึทื‘ืึทืœื–.

ืื™ืŸ ื“ื™ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข:

  • ื“ื™ ืคืืœื’ืขื ื“ืข ื˜ืฉืขืงืก ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ืึทื ืึทืœื™ื–ืขืจ ื”ืึทืจืฅ:
    • ืึทื•ื•ืขืง ืคื•ืŸ ืึท ืฆื•ืจื™ืงืงืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ ืื™ืŸ ื“ื™ ืคื•ื ืงืฆื™ืข ื’ื•ืฃ;
    • ืจืขืงืึธืจื“ืก ืึธื•ื•ื•ืขืจืœืึทืคึผื™ื ื’ ื“ืึทื˜ืŸ, ื“ื™ื˜ืขืจืžืึทื ื– ื•ื ื“ืขืคื™ื ืขื“ ื ืึทื˜ื•ืจ;
    • ื“ื™ ื•ื•ืขืจื˜ ื•ื•ืึธืก ืื™ื– ืงืึทืžืคึผืขืจื“ ืื™ื– ืึทืจื•ื™ืก ื“ื™ ื•ื•ืขืจื˜ ืคืึทืจื˜ืจืขื˜ื•ื ื’ ืคื•ืŸ ื“ืขื ื˜ื™ืคึผ;
    • ืงืึธืคึผื™ืข ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ืฆื•ืœื™ื™ื’ืŸ ืฆื• ืฆื•ืจื™ืงืงื•ืžืขืŸ std :: ืžืึธื•ื•ืข (ืœืึธืงืึทืœ);
    • ื“ื™ ื˜ืขืงืข ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ื’ืขืขืคื ื˜ ืกื™ื™ืžืึทืœื˜ื™ื™ื ื™ืึทืกืœื™ ืคึฟืึทืจ ืœื™ื™ืขื ืขืŸ ืื•ืŸ ืฉืจื™ื™ื‘ืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืกื˜ืจื™ืžื– (ืกื˜ืจื™ื);
  • ืคึฟืึทืจ ื™ื•ื ื™ืงืก ืคึผืœืึทื˜ืคืึธืจืžืก, ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื•ื•ื™ื™ึทื–ื ื“ื™ืง ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคืืจื‘ืŸ;
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืกื™ืžื‘ืึธืœื™ืฉ ืึทื ืึทืœื™ืกื™ืก ืคึฟืึทืจ ValueFlow. ื ื™ืฆื˜ ืคึผืฉื•ื˜ ื“ืขืœื˜ืึท ื•ื•ืขืŸ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื ื’ ื“ื™ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ ืฆื•ื•ื™ื™ ืื•ืžื‘ืึทืงืึทื ื˜ ื•ื•ืขืจื™ืึทื‘ืึทืœื–;
  • ื“ื™ ื›ึผืœืœื™ื ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ื“ื™ ืจืฉื™ืžื” ืคื•ืŸ ื˜ืึธืงืขื ืก "ื“ืขืคื™ื ื™ืจืŸ" ืงืขื ืขืŸ ืื•ื™ืš ื’ืœื™ื™ึทื›ืŸ # ื™ื ืงืœื•ื“ืข;
  • ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืงื•ื•ื™ื˜ืœ ืงืขื ืขืŸ ืื™ืฆื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ืงื•ื•ื™ื˜ืœ , ืื•ืŸ ืึทืงืึธืจื“ื™ื ื’ืœื™ ื“ื™ ืคืจื™ื™ ืคืึทื ื’ืงืฉืึทื ื–, ื•ื•ืึธืก ืงืขื ืขืŸ ืึธื ื ืขืžืขืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืึทื–ืึท ื•ื•ื™ std :: ื’ืจื™ื™ืก, std :: empty, std :: begin, std :: ืขื ื“, ืขื˜ืง. ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ื˜ืจืึธื’ืŸ ืึธื“ืขืจ ืงืึทืžืฃ ืคึฟืึทืจ ืงืึทื ืขืงื˜ืขืจื–;
  • ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืงื•ื•ื™ื˜ืœ ืงืขื ืขืŸ ืื™ืฆื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ืงื•ื•ื™ื˜ืœ ืคึฟืึทืจ ืงืœื•ื’ ืคึผืึธื™ื ื˜ืขืจืก ื•ื•ืึธืก ื”ืึธื‘ืŸ ื™ื™ื ืฆื™ืง ืึธื•ื ืขืจืฉื™ืคึผ. ื ื•ื•ืืจืขื ื•ื ื’ ืื™ื– ืื™ืฆื˜ ืืจื•ื™ืก ื•ื•ืขื’ืŸ ื“ืึทื ื’ื’ื™ื ื’ ื‘ืึทื•ื•ื™ื™ึทื–ืŸ ืฆื• ื“ื™ ื˜ื™ื™ืคึผืก ืคื•ืŸ ืงืœื•ื’ ืคึผื•ื™ื ื˜ืขืจื–;
  • ืคืึทืจืคืขืกื˜ื™ืงื˜ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ -cppcheck-build-dir ืคึผืึทืจืึทืžืขื˜ืขืจ;
  • htmlreport ืงืขื ืขืŸ ืื™ืฆื˜ ืึทืจื•ื™ืกื•ื•ื™ื™ึทื–ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื ืžื—ื‘ืจ (ื ื™ืฆืŸ ื’ื™ื˜ ื‘ืึทืฉื•ืœื“ื™ืงืŸ);
  • ืขืงืกื˜ืขื ื“ืขื“ ื•ื•ืึธืจื ื™ื ื’ื– ื•ื•ืขื’ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืงืขืกื™ื™ื“ืขืจื“ื™ืง, ืึธื‘ืขืจ ืงืขืŸ ื–ื™ื™ืŸ;
  • ื“ื™ ืึทืงื™ื•ืžื™ืึทืœื™ื™ื˜ื™ื“ ืขืจืจืึธืจืก ืื•ืŸ ืฉืึธืจื˜ืงืึธืžื™ื ื’ืก ืคื•ืŸ ื“ื™ ืึทื ืึทืœื™ื–ืขืจ ื–ืขื ืขืŸ ืงืขืจืขืงื˜ืึทื“.

ืื™ืŸ ื“ืขืจืฆื•, ื“ื™ ื˜ืฉืขืงืก ืคื•ืŸ Misra C 2012, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืึทืžืขื ื“ืžืขื ื˜ 1 ืื•ืŸ ืึทืžืขื ื“ืžืขื ื˜ 2, ื–ืขื ืขืŸ ื’ืึธืจ ื™ืžืคึผืœืึทืžืขื ืึทื“, ืึทื—ื•ืฅ ื“ื™ ื›ึผืœืœื™ื 1.1, 1.2 ืื•ืŸ 17.3. ื˜ืฉืขืงืก 1.1 ืื•ืŸ 1.2 ืžื•ื–ืŸ ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื“ื•ืจืš ื“ื™ ืงืึทืžืคึผื™ื™ืœืขืจ. ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ 17.3 ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ื“ื•ืจืš ืึท ืงืึทืžืคึผื™ื™ืœืขืจ ืึทื–ืึท ื•ื•ื™ GCC.

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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’