Выпуск cppcheck 2.7, статичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° для языков C++ ΠΈ Π‘

Π’Ρ‹ΡˆΠ»Π° новая вСрсия статичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° cppcheck 2.7, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ классы ошибок Π² ΠΊΠΎΠ΄Π΅ Π½Π° языках Π‘ΠΈ ΠΈ Π‘ΠΈ++, Π² Ρ‚ΠΎΠΌ числС ΠΏΡ€ΠΈ использовании нСстандартного синтаксиса, Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ для встраиваСмых систСм. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ΡΡ коллСкция ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обСспСчСна интСграция cppcheck с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ систСмами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ тСстирования, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставлСны Ρ‚Π°ΠΊΠΈΠ΅ возмоТности ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° соотвСтствия ΠΊΠΎΠ΄Π° ΡΡ‚ΠΈΠ»ΡŽ оформлСния ΠΊΠΎΠ΄Π°. Для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ собствСнный парсСр, Ρ‚Π°ΠΊ ΠΈ внСшний парсСр ΠΎΡ‚ Clang. Π’ состав Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ скрипт donate-cpu.py для прСдоставлСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов для выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ совмСстной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Debian. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ тСксты ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv3.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ cppcheck сосрСдоточСно Π½Π° выявлСнии ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, связанных с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ конструкций, опасных с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния бСзопасности. ЦСлью Ρ‚Π°ΠΊΠΆΠ΅ являСтся минимизация Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний. Π‘Ρ€Π΅Π΄ΠΈ выявляСмых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, дСлСния Π½Π° ноль, цСлочислСнныС пСрСполнСния, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ сдвига, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ прСобразования, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ использованиС STL, Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΡƒΠ»Π΅Π²Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ послС фактичСского обращСния ΠΊ Π±ΡƒΡ„Π΅Ρ€Ρƒ, Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², использованиС Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ швСдской Ρ„ΠΈΡ€ΠΌΠΎΠΉ Cppcheck Solutions AB разрабатываСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ вСрсия Cppcheck Premium, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π°Π½Π°Π»ΠΈΠ· наличия бСсконСчных Ρ†ΠΈΠΊΠ»ΠΎΠ², ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ поиск Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· пСрСполнСния Π±ΡƒΡ„Π΅Ρ€ΠΎΠ².

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° прСдставлСний (view) ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² — Π² Ρ‚Π΅Π³ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ view, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ класс являСтся прСдставлСниСм. Код Π°Π½Π°Π»ΠΈΠ·Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ для использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΏΡ€ΠΈ поискС «Π²ΠΈΡΡΡ‡ΠΈΡ…» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²;
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ;
  • Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ накопившиСся ошибки ΠΈ устранСны Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°.

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