ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° cppcheck 2.6, Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° статичСн ΠΊΠΎΠ΄ Π·Π° C++ ΠΈ C Π΅Π·ΠΈΡ†ΠΈ

ΠŸΡƒΡΠ½Π°Ρ‚Π° Π΅ Π½ΠΎΠ²Π° вСрсия Π½Π° статичния Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° ΠΊΠΎΠ΄ cppcheck 2.6. Π’ΠΎΠΉ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ класовС Π³Ρ€Π΅ΡˆΠΊΠΈ Π² C ΠΈ C++ ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ²Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ нСстандартСн синтаксис, Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ Π·Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ систСми. Налична Π΅ колСкция ΠΎΡ‚ плъгини, ΠΊΠΎΠΈΡ‚ΠΎ позволяват интСграцията Π½Π° cppcheck с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ систСми Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция ΠΈ тСстванС, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° стила Π½Π° ΠΊΠΎΠ΄Π°. Π—Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ вградСният парсСр, Ρ‚Π°ΠΊΠ° ΠΈ Π²ΡŠΠ½ΡˆΠ½ΠΈΡΡ‚ парсСр Clang. ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈ скрипта donate-cpu.py Π·Π° прСдоставянС Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ рСсурси Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅. DebianΠ˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· GPLv3.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° cppcheck Π΅ фокусирано Π²ΡŠΡ€Ρ…Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° конструкции, прСдставляващи риск Π·Π° сигурността. Π¦Π΅Π»Ρ‚Π° Π΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ Ρ„Π°Π»ΡˆΠΈΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ към Π½Π΅ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π°, ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° цСлочислСни числа, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° измСстванС Π½Π° Π±ΠΈΡ‚ΠΎΠ²Π΅, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ прСобразувания, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° STL, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ слСд Π±ΡƒΡ„Π΅Ρ€ΠΈΡ€Π°Π½Π΅, ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ.

Π’ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия:

  • Π‘Π»Π΅Π΄Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към ядрото Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°:
    • липса Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π² тялото Π½Π° функцията;
    • ΠΏΡ€ΠΈΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‰ΠΈ сС записи ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅;
    • сравняваната стойност Π΅ извън стойностното прСдставянС Π½Π° Ρ‚ΠΈΠΏΠ°;
    • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡΡ‚Π° Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π° към return std::move(local);
    • Ρ„Π°ΠΉΠ» Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ ΠΈ запис Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ;
  • Π—Π° Unix ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° диагностични ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ символСн Π°Π½Π°Π»ΠΈΠ· към ValueFlow. Използва сС проста Π΄Π΅Π»Ρ‚Π° ΠΏΡ€ΠΈ изчисляванС Π½Π° Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅ нСизвСстни ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ;
  • ΠŸΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° списъка с Ρ‚ΠΎΠΊΠ΅Π½ΠΈ β€ždefineβ€œ, ΡΡŠΡ‰ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ с #include;
  • Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ , ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, свободнитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΊΠ°Ρ‚ΠΎ std::size, std::empty, std::begin, std::end ΠΈ Ρ‚.Π½., ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π·Π°Π΄Π°Π²Π°Ρ‚ yeld ΠΈΠ»ΠΈ action Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ;
  • Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π—Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»Π½Π° собствСност, Π²Π΅Ρ‡Π΅ сС ΠΈΠ·Π΄Π°Π²Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° висящи ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ към Ρ‚Π°ΠΊΠΈΠ²Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ;
  • ΠžΡ‚ΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π° --cppcheck-build-dir;
  • htmlreport Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° информация Π·Π° Π°Π²Ρ‚ΠΎΡ€Π° (Ρ‡Ρ€Π΅Π· git blame);
  • Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ прСдупрСТдСния Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са константи, Π½ΠΎ Π±ΠΈΡ…Π° ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚;
  • НатрупанитС Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° са ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ.

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ ΠΎΡ‚ Misra C 2012 бяха напълно Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ИзмСнСниС 1 ΠΈ ИзмСнСниС 2, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° 1.1, 1.2 ΠΈ 17.3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ 1.1 ΠΈ 1.2 трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° 17.3 ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ GCC.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с DDoS Π·Π°Ρ‰ΠΈΡ‚Π°, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΡƒΠ΅Π± хостинг със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS Π°Ρ‚Π°ΠΊΠΈ, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster