Ho lokolloa ha cppcheck 2.6, static code analyzer bakeng sa lipuo tsa C++ le C

Phetolelo e ncha ea static code analyzer cppcheck 2.6 e lokollotsoe, e leng se u lumellang hore u khetholle lihlopha tse sa tšoaneng tsa liphoso ka khoutu ka lipuo tsa C le C ++, ho kenyelletsa le ha u sebelisa syntax e sa tloaelehang, e tloaelehileng bakeng sa litsamaiso tse kentsoeng. Pokello ea li-plugins e fanoa ka eona cppcheck e kopantsoe le mekhoa e sa tšoaneng ea tsoelo-pele, ho kopanya ho tsoelang pele le mekhoa ea liteko, hape e fana ka lintlha tse kang ho hlahloba ho lumellana le khoutu le mokhoa oa khoutu. Ho arola khoutu, o ka sebelisa sekhetho sa hau kapa sehlahlobi sa kantle se tsoang ho Clang. E boetse e kenyelletsa mongolo oa donate-cpu.py ho fana ka lisebelisoa tsa lehae ho etsa mosebetsi o kopanetsoeng oa tlhahlobo ea khoutu bakeng sa liphutheloana tsa Debian. Khoutu ea mohloli oa projeke e ajoa tlasa laesense ea GPLv3.

Tsoelo-pele ea cppcheck e tsepamisitse maikutlo ho khetholla mathata a amanang le boitšoaro bo sa hlalosoang le tšebeliso ea meralo e kotsi ho tloha sebakeng sa polokeho. Sepheo hape ke ho fokotsa maikutlo a fosahetseng. Har'a mathata a khethiloeng: lintlha tse lebisang linthong tse seng teng, likarohano ka zero, palo e felletseng, ts'ebetso e fosahetseng, liphetoho tse fosahetseng, mathata ha u sebetsa ka mohopolo, ts'ebeliso e fosahetseng ea STL, litšupiso tsa null pointer, ts'ebeliso ea licheke kamora phihlello ea nnete. ho buffer, buffer overruns , tšebeliso ea mefuta e sa tsejoeng.

Khatisong e ncha:

  • Licheke tse latelang li kentsoe setsing sa analyzer:
    • ho ba sieo ha motho ea khutlisetsang morao sehlopheng sa tšebetso;
    • rekota data e fetang, e khetha boitšoaro bo sa hlalosoang;
    • boleng bo bapisoang bo kantle ho boemeli ba boleng ba mofuta;
    • optimization ea likopi ha e sebetse ho khutlisa std::move(lehae);
    • faele e ke ke ea buloa ka nako e le 'ngoe bakeng sa ho bala le ho ngola melapo e fapaneng (molapo);
  • bakeng sa li-platform tsa Unix, tšehetso e ekelitsoeng ea ho bonts'a melaetsa ea tlhahlobo ka mebala e fapaneng;
  • e ekelitse tlhahlobo ea tšoantšetso bakeng sa ValueFlow. E sebelisa delta e bonolo ha e bala phapang pakeng tsa mefuta e 'meli e sa tsejoeng;
  • melao e sebelisoang bakeng sa lethathamo la li-tokens "hlalosa" e ka boela ea bapisa # kenyeletsa;
  • tekete ea laebrari joale e ka ba le tag , 'me ho latela mesebetsi ea mahala, e ka amohelang lijana tse kang std::size, std::empty, std::start, std::end, joalo-joalo. e ka hlakisa yeld kapa ketso bakeng sa lihokelo;
  • tekete ea laebrari joale e ka ba le tag bakeng sa lisupa tse bohlale tse nang le botho bo ikhethang. Joale ho fanoe ka temoso mabapi le litšupiso tse leketlileng tsa mefuta ena ea lisupa tse bohlale;
  • mathata a tsitsitseng ka ho sebetsana le -cppcheck-build-dir parameter;
  • htmlreport joale e ka hlahisa tlhahisoleseling mabapi le mongoli (ho sebelisa git blame);
  • litemoso tse atolositsoeng mabapi le mefuta e sa fetoheng, empa e ka ba;
  • Liphoso tse bokelletsoeng le mefokolo ea mohlahlobi li lokisitsoe.

Ho feta moo, licheke tse tsoang ho Misra C 2012, ho kenyelletsa Amendment 1 le Amendment 2, li kentsoe tšebetsong ka botlalo, ntle le melao ea 1.1, 1.2 le 17.3. Licheke 1.1 le 1.2 li tlameha ho etsoa ke moqapi. Netefatso 17.3 e ka etsoa ke motho ea bokellang joalo ka GCC.

Source: opennet.ru

Eketsa ka tlhaloso