Hoʻokuʻu ʻia o cppcheck 2.6, kahi helu helu helu no nā ʻōlelo C++ a me C

Ua hoʻokuʻu ʻia kahi mana hou o ka static code analyzer cppcheck 2.6, kahi e hiki ai iā ʻoe ke ʻike i nā ʻano o nā hewa i ke code ma nā ʻōlelo C a me C++, me ka hoʻohana ʻana i ka syntax maʻamau, maʻamau no nā ʻōnaehana hoʻokomo. Hāʻawi ʻia kahi hōʻuluʻulu o nā plugins e hoʻohui ʻia ai ka cppcheck me nā ʻano hoʻomohala like ʻole, ka hoʻohui mau ʻana a me nā ʻōnaehana hoʻāʻo, a hāʻawi pū i nā hiʻohiʻona e like me ka nānā ʻana i ka hoʻokō code me ke ʻano code. No ka parse code, hiki iā ʻoe ke hoʻohana i kāu parser a i ʻole kahi parser waho mai Clang. Loaʻa pū kekahi i ka palapala donate-cpu.py e hāʻawi i nā kumuwaiwai kūloko e hana i ka hana loiloi code collaborative no nā pūʻolo Debian. Hāʻawi ʻia ke kumu kumu o ka papahana ma lalo o ka laikini GPLv3.

Hoʻokumu ʻia ka hoʻomohala ʻana o cppcheck i ka ʻike ʻana i nā pilikia e pili ana i ka ʻano undefined a me ka hoʻohana ʻana i nā hoʻolālā weliweli mai kahi ʻike palekana. ʻO ka pahuhopu hoʻi e hōʻemi i nā hopena maikaʻi ʻole. Ma waena o nā pilikia i ʻike ʻia: nā kuhikuhi i nā mea i loaʻa ʻole, ka māhele ʻana i ka zero, ka nui o ka integer, nā hana hoʻololi bit hewa ʻole, nā hoʻololi hewa ʻole, nā pilikia i ka wā e hana ai me ka hoʻomanaʻo, ka hoʻohana hewa ʻole ʻana o STL, nā kuhikuhi kuhikuhi null, ka hoʻohana ʻana i nā loiloi ma hope o ke komo maoli. i ka buffer, buffer overruns , hoʻohana i nā ʻano hoʻololi ʻole.

Ma ka mana hou:

  • Ua hoʻohui ʻia nā loiloi ma lalo nei i ka core analyzer:
    • ka nele o ka mea hoʻihoʻi i loko o ke kino hana;
    • hoʻopaʻa i ka ʻikepili i hoʻopaʻa ʻia, hoʻoholo i ka ʻano i wehewehe ʻole ʻia;
    • ʻo ka waiwai i hoʻohālikelike ʻia ma waho o ka hōʻike waiwai o ke ʻano;
    • ʻAʻole pili ka hoʻoponopono kope ʻana i ka hoʻihoʻi std::move(local);
    • ʻAʻole hiki ke wehe ʻia ka faila i ka manawa like no ka heluhelu a me ke kākau ʻana ma nā kahawai like ʻole (stream);
  • no nā paepae Unix, hoʻohui i ke kākoʻo no ka hōʻike ʻana i nā memo diagnostic i nā kala like ʻole;
  • hoʻohui ʻia ka hōʻailona hōʻailona no ValueFlow. Hoʻohana i ka delta maʻalahi i ka helu ʻana i ka ʻokoʻa ma waena o ʻelua mau ʻokoʻa ʻike ʻole;
  • Hiki i nā lula i hoʻohana ʻia no ka papa inoa o nā hōʻailona "define" hiki ke kūlike me #include;
  • hōʻailona waihona hiki i kēia manawa ke loaʻa kahi hōʻailona , a no laila nā hana manuahi, hiki ke ʻae i nā ipu e like me std::size, std::empty, std::begin, std::end, etc. hiki ke kuhikuhi i ka yeld a i ʻole ka hana no nā mea hoʻohui;
  • hōʻailona waihona hiki i kēia manawa ke loaʻa kahi hōʻailona no nā kuhikuhi akamai i loaʻa ka mana kūʻokoʻa. Ua hoʻopuka ʻia kahi ʻōlelo aʻo e pili ana i nā kuhikuhi e pili ana i kēia mau ʻano kuhikuhi akamai;
  • hoʻopaʻa i nā pilikia me ka hoʻoponopono ʻana i ka —cppcheck-build-dir parameter;
  • Hiki iā htmlreport ke hōʻike i ka ʻike e pili ana i ka mea kākau (me ka hoʻohana ʻana i ka git blame);
  • nā ʻōlelo aʻo lōʻihi e pili ana i nā ʻano like ʻole, akā hiki ke;
  • Ua hoʻoponopono ʻia nā hewa i hōʻiliʻili ʻia a me nā hemahema.

Eia hou, ua hoʻokō piha ʻia nā loiloi mai Misra C 2012, me ka Hoʻololi 1 a me ka Hoʻololi 2, koe wale nō nā lula 1.1, 1.2 a me 17.3. Pono e hana ʻia nā māka 1.1 a me 1.2 e ka mea hoʻopili. Hiki ke hoʻokō ʻia ka hōʻoia 17.3 e kahi mea hōʻuluʻulu e like me GCC.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka