cppcheck 2.6 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди, C++ рдЖрдгрд┐ C рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ

рд╕реНрдЯреЕрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ cppcheck 2.6 рдЪреА рдирд╡реАрди рдЖрд╡реГрддреНрддреА рдЬрд╛рд░реА рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ C рдЖрдгрд┐ C++ рднрд╛рд╖рд╛рдВрдордзреАрд▓ рдХреЛрдбрдордзреАрд▓ рддреНрд░реБрдЯреАрдВрдЪреНрдпрд╛ рд╡рд┐рд╡рд┐рдз рд╡рд░реНрдЧрд╛рдВрдЪреА рдУрд│рдЦ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдиреЙрди-рд╕реНрдЯрдБрдбрд░реНрдб рд╕рд┐рдВрдЯреЕрдХреНрд╕ рд╡рд╛рдкрд░рддрд╛рдирд╛, рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрдкреВрд░реНрдг рдЖрд╣реЗ. рдкреНрд▓рдЧрдЗрдиреНрд╕рдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ cppcheck рд╡рд┐рд╡рд┐рдз рд╡рд┐рдХрд╛рд╕, рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдг рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдкреНрд░рдгрд╛рд▓реАрдВрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдХреЛрдб рд╢реИрд▓реАрд╕рд╣ рдХреЛрдб рдЕрдиреБрдкрд╛рд▓рди рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рд░рдЦреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдХреЛрдб рдкрд╛рд░реНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣реА рддреБрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдкрд╛рд░реНрд╕рд░ рдХрд┐рдВрд╡рд╛ рдХреНрд▓реЕрдВрдЧ рдордзреАрд▓ рдмрд╛рд╣реНрдп рдкрд╛рд░реНрд╕рд░ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рддреНрдпрд╛рдд рдбреЗрдмрд┐рдпрди рдкреЕрдХреЗрдЬреЗрд╕рд╕рд╛рдареА рд╕рд╣рдпреЛрдЧреА рдХреЛрдб рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдерд╛рдирд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА donate-cpu.py рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб GPLv3 рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

рд╕реАрдкреАрдкреАрдЪреЗрдХрдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрддрдирд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рдУрд│рдЦрдгреНрдпрд╛рд╡рд░ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди рдзреЛрдХрд╛рджрд╛рдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбрд┐рдЭрд╛рдЗрдирдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╡рд░ рдХреЗрдВрджреНрд░рд┐рдд рдЖрд╣реЗ. рдЦреЛрдЯреНрдпрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЧреЛрд╖реНрдЯреА рдХрдореА рдХрд░рдгреЗ рд╣реЗ рджреЗрдЦреАрд▓ рдзреНрдпреЗрдп рдЖрд╣реЗ. рдУрд│рдЦрд▓реНрдпрд╛ рдЧреЗрд▓реЗрд▓реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдкреИрдХреА: рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд╕реНрддреВрдВрдЪреЗ рдкреЙрдЗрдВрдЯрд░, рд╢реВрдиреНрдпрд╛рдиреЗ рд╡рд┐рднрд╛рдЧрдгреЗ, рдкреВрд░реНрдгрд╛рдВрдХ рдУрд╡реНрд╣рд░рдлреНрд▓реЛ, рдЪреБрдХреАрдЪреЗ рдмрд┐рдЯ рд╢рд┐рдлреНрдЯ рдСрдкрд░реЗрд╢рдиреНрд╕, рдЪреБрдХреАрдЪреА рд░реВрдкрд╛рдВрддрд░рдгреЗ, рдореЗрдорд░реАрд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рд╕рдорд╕реНрдпрд╛, рдПрд╕рдЯреАрдПрд▓рдЪрд╛ рдЪреБрдХреАрдЪрд╛ рд╡рд╛рдкрд░, рд╢реВрдиреНрдп рдкреЙрдЗрдВрдЯрд░ рдбреАрд░реЗрдлрд░реЗрдиреНрд╕реЗрд╕, рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рд╡реЗрд╢рд╛рдирдВрддрд░ рддрдкрд╛рд╕рдгреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдмрдлрд░, рдмрдлрд░ рдУрд╡реНрд╣рд░рд░рдиреНрд╕, рдЕрдирдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪрд╛ рд╡рд╛рдкрд░.

рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ:

  • рдЦрд╛рд▓реАрд▓ рдЪреЗрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛрд░рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд:
    • рдлрдВрдХреНрд╢рди рдмреЙрдбреАрдордзреНрдпреЗ рд░рд┐рдЯрд░реНрди рдСрдкрд░реЗрдЯрд░рдЪреА рдЕрдиреБрдкрд╕реНрдерд┐рддреА;
    • рдУрд╡реНрд╣рд░рд▓реЕрдкрд┐рдВрдЧ рдбреЗрдЯрд╛ рд░реЗрдХреЙрд░реНрдб рдХрд░рддреЗ, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрддрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ;
    • рдЬреНрдпрд╛ рдореВрд▓реНрдпрд╛рдЪреА рддреБрд▓рдирд╛ рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ рддреЗ рдкреНрд░рдХрд╛рд░рд╛рдЪреНрдпрд╛ рдореВрд▓реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╛рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЖрд╣реЗ;
    • рдХреЙрдкреА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд░рд┐рдЯрд░реНрди std::move(local) рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрдд рдирд╛рд╣реА;
    • рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рд╡рд╛рд╣рд╛рдд (рдкреНрд░рд╡рд╛рд╣) рд╡рд╛рдЪрди рдЖрдгрд┐ рд▓реЗрдЦрдирд╛рд╕рд╛рдареА рдлрд╛рдЗрд▓ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЙрдШрдбрддрд╛ рдпреЗрдд рдирд╛рд╣реА;
  • рдпреБрдирд┐рдХреНрд╕ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА, рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдВрджреЗрд╢ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд░рдВрдЧрд╛рдВрдордзреНрдпреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬреЛрдбрд▓реЗрд▓реЗ рд╕рдорд░реНрдерди;
  • ValueFlow рд╕рд╛рдареА рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬреЛрдбрд▓реЗ. рджреЛрди рдЕрдЬреНрдЮрд╛рдд рдЪрд▓рд╛рдВрдордзреАрд▓ рдлрд░рдХ рдореЛрдЬрддрд╛рдирд╛ рд╕рд╛рдзреЗ рдбреЗрд▓реНрдЯрд╛ рд╡рд╛рдкрд░рддреЗ;
  • рдЯреЛрдХрдиреНрд╕рдЪреНрдпрд╛ рдпрд╛рджреАрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдирд┐рдпрдо "рдкрд░рд┐рднрд╛рд╖рд┐рдд" рджреЗрдЦреАрд▓ #рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛рдд;
  • рд▓рд╛рдпрдмреНрд░рд░реА рдЯреЕрдЧ рдЖрддрд╛ рдЯреЕрдЧ рдЕрд╕реВ рд╢рдХрддреЛ , рдЖрдгрд┐ рддреНрдпрд╛рдиреБрд╕рд╛рд░ рдлреНрд░реА рдлрдВрдХреНрд╢рдиреНрд╕, рдЬреЗ рдХрдВрдЯреЗрдирд░ рд╕реНрд╡реАрдХрд╛рд░реВ рд╢рдХрддрд╛рдд рдЬрд╕реЗ рдХреА std::size, std::empty, std::begin, std::end, рдЗ. рдХрдиреЗрдХреНрдЯрд░реНрд╕рд╕рд╛рдареА рдпреЗрд▓реНрдб рдХрд┐рдВрд╡рд╛ рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддреЗ;
  • рд▓рд╛рдпрдмреНрд░рд░реА рдЯреЕрдЧ рдЖрддрд╛ рдЯреЕрдЧ рдЕрд╕реВ рд╢рдХрддреЛ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рд▓рдХреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░рд╕рд╛рдареА. рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд╕реНрдорд╛рд░реНрдЯ рдкреЙрдЗрдВрдЯрд░реНрд╕рдЪреНрдпрд╛ рд▓рдЯрдХрдгрд╛рд▒реНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдВрдмрджреНрджрд▓ рдЖрддрд╛ рдПрдХ рдЪреЗрддрд╛рд╡рдгреА рдЬрд╛рд░реА рдХреЗрд▓реА рдЬрд╛рддреЗ;
  • тАФcppcheck-build-dir рдкреЕрд░рд╛рдореАрдЯрд░рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реНрдпрд╛;
  • htmlreport рдЖрддрд╛ рд▓реЗрдЦрдХрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВ рд╢рдХрддреЗ (рдЧрд┐рдЯ рджреЛрд╖ рд╡рд╛рдкрд░реВрди);
  • рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдмрджреНрджрд▓ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЗрд╢рд╛рд░реЗ рдЬреЗ рд╕реНрдерд┐рд░ рдирд╕рддрд╛рдд, рдкрд░рдВрддреБ рдЕрд╕реВ рд╢рдХрддрд╛рдд;
  • рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд╛рдЪреНрдпрд╛ рд╕рдВрдЪрд┐рдд рдЪреБрдХрд╛ рдЖрдгрд┐ рдЙрдгрд┐рд╡рд╛ рджреБрд░реБрд╕реНрдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдирд┐рдпрдо 2012, 1 рдЖрдгрд┐ 2 рд╡рдЧрд│рддрд╛, рджреБрд░реБрд╕реНрддреА 1.1 рдЖрдгрд┐ рджреБрд░реБрд╕реНрддреА 1.2 рд╕рд╣ рдорд┐рд╢реНрд░рд╛ C 17.3 рдЪреЗ рдЪреЗрдХ рдкреВрд░реНрдгрдкрдгреЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд. 1.1 рдЖрдгрд┐ 1.2 рдЪреЗ рдЪреЗрдХ рдХрдВрдкрд╛рдЗрд▓рд░рдиреЗ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд. рд╕рддреНрдпрд╛рдкрди 17.3 рд╣реЗ GCC рд╕рд╛рд░рдЦреНрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░рджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛