Inguqulo entsha ye-static code analyzer cppcheck 2.6 ikhishiwe, ekuvumela ukuthi ukhombe izigaba ezihlukahlukene zamaphutha kukhodi ezilimini ezingu-C no-C++, okuhlanganisa lapho usebenzisa i-syntax engajwayelekile, evamile kumasistimu ashumekiwe. Iqoqo lama-plugin linikezwa lapho i-cppcheck ihlanganiswa nentuthuko ehlukahlukene, ukuhlanganiswa okuqhubekayo nezinhlelo zokuhlola, futhi inikeza izici ezinjengokuhlola ukuhambisana nekhodi nesitayela sekhodi. Ukuze uhlaziye ikhodi, ungasebenzisa noma umhlahleli wakho noma umhlahleli wangaphandle ovela ku-Clang. Kuhlanganisa futhi umbhalo we-donate-cpu.py ukuze unikeze izinsiza zasendaweni ukwenza umsebenzi wokubambisana wokubuyekezwa kwekhodi kumaphakheji e-Debian. Ikhodi yomthombo wephrojekthi isatshalaliswa ngaphansi kwelayisensi ye-GPLv3.
Ukuthuthukiswa kwe-cppcheck kugxile ekukhombeni izinkinga ezihlobene nokuziphatha okungachazwanga kanye nokusetshenziswa kwemiklamo eyingozi ngokombono wezokuphepha. Umgomo futhi uwukunciphisa imibono engamanga. Phakathi kwezinkinga ezikhonjiwe: izinkomba eziya ezintweni ezingekho, ukuhlukaniswa ngoziro, ukuchichima okuphelele, ukusebenza kwe-bit shift okungalungile, ukuguqulwa okungalungile, izinkinga lapho usebenza ngenkumbulo, ukusetshenziswa okungalungile kwe-STL, i-null pointer dereferences, ukusetshenziswa kwamasheke ngemva kokufinyelela kwangempela. kusigcinalwazi, ukweqa kwe-buffer, ukusetshenziswa kweziguquguqukayo ezingaqalwanga.
Enguqulweni entsha:
- Ukuhlola okulandelayo kwengezwe kumongo wokuhlaziya:
- ukungabikho komsebenzisi obuyayo endikimbeni yomsebenzi;
- irekhoda idatha eyeqayo, inquma ukuziphatha okungachazwanga;
- inani eliqhathaniswayo lingaphandle kokumelela inani lohlobo;
- ukulungiselelwa kwekhophi akusebenzi ekubuyiseleni okuthi std::move(local);
- ifayela alikwazi ukuvulwa kanyekanye ukuze kufundwe futhi kubhalwe emifudlaneni ehlukene (ukusakaza);
- kuzingxenyekazi ze-Unix, kungezwe ukusekelwa kokubonisa imilayezo yokuxilonga ngemibala ehlukene;
- wengeze ukuhlaziya okungokomfanekiso kwe-ValueFlow. Isebenzisa i-delta elula lapho ibala umehluko phakathi kwezinto ezimbili eziguquguqukayo ezingaziwa;
- imithetho esetshenziselwa uhlu lwamathokheni "chaza" ingaphinda ihambisane ne-#include;
- ithegi yelabhulali manje ingaqukatha ithegi , futhi ngokufanelekile nemisebenzi yamahhala, engamukela iziqukathi ezifana ne-std::size, std::akunalutho, std::qala, std::end, njll. ingacacisa i-yeld noma isenzo sezixhumi;
- ithegi yelabhulali manje ingaqukatha ithegi ngezikhombisi ezihlakaniphile ezinobunikazi obuhlukile. Manje sekukhishwe isexwayiso mayelana nezinkomba ezilengayo zalezi zinhlobo zezikhombisi ezihlakaniphile;
- izinkinga ezilungisiwe ngokucubungula ipharamitha ye-cppcheck-build-dir;
- I-htmlreport manje ingabonisa imininingwane ngombhali (usebenzisa i-git blame);
- izexwayiso ezinwetshiwe mayelana neziguquguqukayo ezingashintshi, kodwa ezingaba;
- Amaphutha aqoqiwe kanye nokushiyeka komhlaziyi kulungisiwe.
Ukwengeza, amasheke avela ku-Misra C 2012, okuhlanganisa Ukuchitshiyelwa 1 kanye Nesichibiyelo 2, asetshenziswe ngokugcwele, ngaphandle kwemithetho 1.1, 1.2 kanye no-17.3. Ukuhlola 1.1 no-1.2 kufanele kwenziwe umdidiyeli. Ukuqinisekisa 17.3 kungenziwa umdidiyeli ofana ne-GCC.
Source: opennet.ru