Tukunga o cppcheck 2.6, he kaitirotiro waehere pateko mo nga reo C++ me C

Kua tukuna he putanga hou o te static code analyzer cppcheck 2.6, e taea ai e koe te tautuhi i nga momo momo hapa o te waehere i roto i nga reo C me C++, tae atu ki te whakamahi i te wetereo kore-paerewa, he tikanga mo nga punaha whakauru. Ka whakaratohia he kohinga monomai e whakauruhia ai te cppcheck ki nga momo whanaketanga, te whakauru tonu me nga punaha whakamatautau, me te whakarato ano i nga ahuatanga penei i te tirotiro i te hanganga ture ki te momo waehere. Hei tarai i te waehere, ka taea e koe te whakamahi i to ake parser, i tetahi parser waho ranei mai i a Clang. Kei roto hoki te tuhinga koha-cpu.py hei whakarato rauemi a-rohe ki te mahi i nga mahi arotake waehere mahi mo nga kete Debian. Ko te waehere puna o te kaupapa ka tohatohahia i raro i te raihana GPLv3.

Ko te whakawhanaketanga o te cppcheck e arotahi ana ki te tautuhi i nga raruraru e pa ana ki te whanonga kaore i tautuhia me te whakamahi i nga hoahoa e kino ana mai i te tirohanga haumaru. Ko te whainga hoki ko te whakaiti i nga hua teka. I roto i nga raruraru kua tautuhia: nga tohu tohu ki nga mea kore-kore, nga wehewehenga ma te kore, te nui o te integer, nga mahi nekehanga moka he, he he te hurihanga, he raruraru i te wa e mahi ana me te mahara, he he te whakamahi i te STL, he tohu tohu kore, te whakamahi i nga arowhai i muri i te urunga pono. ki te kaitapa, ka nui ake te buffer , te whakamahi i nga taurangi kaore i te maarama.

I roto i te putanga hou:

  • Ko nga arowhai e whai ake nei kua taapirihia ki te matua tātari:
    • te kore o te kaiwhakahaere whakahoki i roto i te tinana mahi;
    • ka tuhi i nga raraunga inaki, ka whakatau i te whanonga kaore i tautuhia;
    • ko te uara e whakatauritea ana kei waho o te uara o te momo;
    • karekau te arotautanga kape ki te whakahoki std::move(rohe);
    • e kore e taea te whakatuwhera i te konae i te wa kotahi mo te panui me te tuhi i nga awa rereke (awa);
  • mo nga papaaho Unix, he tautoko taapiri mo te whakaatu i nga karere tātaritanga ki nga tae rereke;
  • tāpirihia te tātari tohu mo ValueFlow. Ka whakamahi i te delta ngawari i te tatau i te rereketanga o nga taurangi e rua e kore e mohiotia;
  • Ko nga ture e whakamahia ana mo te rarangi tohu "whakaahua" ka taea hoki te rite ki te #include;
  • ka taea e te tohu wharepukapuka he tohu , me nga mahi kore utu, ka taea te whakaae ipu penei i te std::size, std::empty, std::begin, std::end, etc. Ka taea e koe te tautuhi i nga mahi mo nga hononga;
  • Ka taea e te te tūtohu whare pukapuka he tohu mo nga atatohu atamai he mana motuhake. Inaianei kua tukuna he whakatupato mo nga tohutoro tarewa ki enei momo tohu tohu atamai;
  • he raruraru ki te tukatuka i te —cppcheck-build-dir tawhā;
  • Ka taea e htmlreport te whakaatu korero mo te kaituhi (ma te whakamahi i te git blame);
  • nga whakatupatotanga roa mo nga taurangi karekau i te pumau tonu, engari ka noho tonu;
  • Ko nga hapa kua whakaemihia me nga hapa o te kaitirotiro kua whakatikahia.

I tua atu, kua tino whakatinanahia nga arowhai mai i te Misra C 2012, tae atu ki te Whakatikatika 1 me te Whakatikatika 2, engari mo nga ture 1.1, 1.2 me 17.3. Ko nga arowhai 1.1 me te 1.2 me mahi e te kaitoi. Ko te manatoko 17.3 ka taea e te kaikoipi penei i a GCC.

Source: opennet.ru

Tāpiri i te kōrero