Ukukhishwa kwe-cppcheck 2.6, isihlaziyi sekhodi esimile sezilimi ze-C++ nezi-C

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

Engeza amazwana