Ukukhutshwa kwe-cppcheck 2.6, i-static code analyzer ye-C ++ kunye neelwimi ze-C

Inguqu entsha ye-static code analyzer cppcheck 2.6 ikhutshwe, ekuvumela ukuba uchonge iindidi ezahlukeneyo zeempazamo kwikhowudi kwiilwimi zeC kunye neC ++, kubandakanywa xa usebenzisa i-syntax engekho-standard, eqhelekileyo kwiinkqubo ezifakwe. Ingqokelela yeeplagi inikezelwa apho i-cppcheck idityaniswe nophuhliso olwahlukeneyo, ukuhlanganiswa okuqhubekayo kunye neenkqubo zokuvavanya, kwaye ikwabonelela ngeempawu ezifana nokujonga ukuthotyelwa kwekhowudi kunye nesitayela sekhowudi. Ukwahlula ikhowudi, ungasebenzisa eyakho isahluli okanye isahluli sangaphandle esivela kuClang. Ikwabandakanya iskripthi se-donate-cpu.py ukubonelela ngezixhobo zendawo ukwenza umsebenzi wokuphononongwa kwekhowudi yokubambisana kwiiphakheji zeDebian. Ikhowudi yomthombo weprojekthi isasazwa phantsi kwelayisensi ye-GPLv3.

Ukuphuhliswa kwe-cppcheck kugxininise ekuchongeni iingxaki ezinxulumene nokuziphatha okungachazwanga kunye nokusetyenziswa koyilo oluyingozi kwimbono yokhuseleko. Injongo kwakhona kukunciphisa iimpawu zobuxoki. Phakathi kweengxaki ezichongiweyo: izikhombisi kwizinto ezingekhoyo, ulwahlulo ngo-zero, ukuphuphuma kwenani elipheleleyo, ukusebenza kwe-bit shift engachanekanga, uguqulo olungachanekanga, iingxaki xa usebenza ngememori, usetyenziso olungachanekanga lwe-STL, i-null pointer dereferences, ukusetyenziswa kweetshekhi emva kofikelelo lokwenene. kwi-buffer, i-buffer overruns , ukusetyenziswa kwezinto eziguquguqukayo ezingaqaliswanga.

Kwinguqulelo entsha:

  • Olu vavanyo lulandelayo longezwe kwi-analyzer core:
    • ukungabikho komsebenzisi wokubuyisela kwiqumrhu lomsebenzi;
    • iirekhodi ezidlulayo idatha, imisela indlela yokuziphatha engachazwanga;
    • ixabiso elithelekiswayo lingaphandle komelo lwexabiso lohlobo;
    • usetyenziso lwekopi alusebenzi ekubuyiseni i-std::hambisa(yendawo);
    • ifayile ayikwazi ukuvulwa ngaxeshanye ukufunda nokubhala kwimijelo eyahlukeneyo (umsinga);
  • kwiiplatifti ze-Unix, inkxaso eyongeziweyo yokubonisa imiyalezo yokuxilonga ngemibala eyahlukeneyo;
  • uhlalutyo olongezelelekileyo lomfuziselo weValueFlow. Isebenzisa i-delta elula xa ubala umahluko phakathi kwezinto ezimbini ezingaziwayo;
  • imithetho esetyenziswa kuluhlu lweempawu "zichaza" zinokutshatisa #include;
  • ithegi yethala leencwadi ngoku ingaqulatha ithegi , kwaye ngokufanelekileyo imisebenzi yasimahla, enokwamkela izikhongozeli ezifana ne-std::ubungakanani, std::engenanto, std::qala, std::end, njl. ingachaza i-yeld okanye inyathelo lezixhumanisi;
  • ithegi yethala leencwadi ngoku ingaqulatha ithegi izikhombisi ezihlakaniphile ezinobunikazi obukhethekileyo. Isilumkiso ngoku sikhutshiwe malunga neembekiselo ezijingayo kwezi ntlobo zezalathisi ezikrelekrele;
  • iingxaki ezilungisiweyo ngokusetyenzwa kwe--cppcheck-build-dir parameter;
  • Ingxelo ye-html ngoku ingabonisa ulwazi malunga nombhali (usebenzisa i-git blame);
  • izilumkiso ezongeziweyo malunga nezinto eziguquguqukayo ezingatshintshiyo, kodwa ezinokuba;
  • Iimpazamo eziqokelelweyo kunye neentsilelo ze-analyzer zilungisiwe.

Ukongezelela, iitshekhi ezivela kwi-Misra C 2012, kuquka i-Amendment 1 kunye ne-Amendment 2, ziphunyezwe ngokupheleleyo, ngaphandle kwemigaqo 1.1, 1.2 kunye ne-17.3. Iitshekhi 1.1 no-1.2 maziqhutywe ngumqambi. Ukuqinisekiswa kwe-17.3 kunokwenziwa ngumqokeleli onjenge-GCC.

umthombo: opennet.ru

Yongeza izimvo