
CMake рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдпрд╣ рдкреНрд░рдгрд╛рд▓реА PVS-Studio рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдкреБрд░рд╛рдиреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдиреЗ рднреА рдЕрдкрдиреЗ рдХреЛрдб рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред рд╕реАрдПрдордХреЗ рджрд░реНрд╢рдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИред рдЗрд╕ рдкрд░ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд╛рдВрдк рдЬрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рддрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдкрд░рд┐рдЪрдп
рд╕реАрдПрдордХреЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рд┐рд╕реНрдЯрдо рд╣реИред CMake рдХрд╛ рд╕реАрдзрд╛ рдорддрд▓рдм рднрд╡рди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ CMakeLists.txt рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдПрдХ рдмрд┐рд▓реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬ 2000 рдореЗрдВ рд╣реБрдИ рдереАред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗрд╡рд▓ 2008 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛ред рдЙрд╕ рд╕рдордп, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп 32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ 64-рдмрд┐рдЯ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрдЧ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдерд╛ред 2010 рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдирд┐рджрд╛рди рдХрд╛ рдкрд╣рд▓рд╛ рд╕реЗрдЯ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (V501-
V545 )ред рд╡реИрд╕реЗ, рд╕реАрдПрдордХреЗ рдХреЛрдб рдХреЛ рдЗрд╕ рдкрд╣рд▓реЗ рд╕реЗрдЯ рд╕реЗ рдХреБрдЫ рдЪреЗрддрд╛рд╡рдиреА рд╣реИред
рдЕрдХреНрд╖рдореНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ
V1040 рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореИрдХреНрд░реЛ рдирд╛рдо рдХреА рд╡рд░реНрддрдиреА рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдЯрд╛рдЗрдкреЛред '__MINGW32_' рдореИрдХреНрд░реЛ '__MINGW32__' рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡рд┐рдирд╛рдкреА.рд╣ 4112
#if !defined(__UNICODE_STRING_DEFINED) && defined(__MINGW32_) #define __UNICODE_STRING_DEFINED #endif
V1040 рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЗрддрдиреА рджреЗрд░ рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдЦ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдордп, рдпрд╣ рдЕрднреА рддрдХ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рднреА, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдПрдХ рд╢рд╛рдВрдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред
рдирд╛рдо
__MINGW32_ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдПрдХ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдЪрд░рд┐рддреНрд░ рдЧрд╛рдпрдм рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреЛрдб рдЦреЛрдЬрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджреЛрдиреЛрдВ рддрд░рдл рджреЛ рдЕрдВрдбрд░рд▓рд╛рдЗрди рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
V531 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдПрдХ рдЖрдХрд╛рд░ () рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ()ред cmGlobalVisualStudioGenerator.cxx 558
bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, const std::string& regKeyBase, std::string& nextAvailableSubKeyName) { .... if (ERROR_SUCCESS == result) { wchar_t subkeyname[256];
рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП,
рдЖрдХрд╛рд░ рдХрд╛ рдСрдкрд░реЗрдЯрд░ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред
Cch_subkeyname рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рдорд╛рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдФрд░ рдЙрд╕реЗ
рдЖрд╢рдп рд╕реЗ 4 рдЧреБрдирд╛ рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдорд┐рд▓рд╛ред рдЖрдЗрдП рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ "рдЪрд╛рд░ рдмрд╛рд░" рдХрд╣рд╛рдВ рд╕реЗ рдЖрддрд╛ рд╣реИред
рд╕рд░рдгреА рдФрд░ рдЗрд╕рдХреЗ рдЧрд▓рдд рдЖрдХрд╛рд░ рдХреЛ
RegEnumKeyExW рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
LSTATUS RegEnumKeyExW( HKEY hKey, DWORD dwIndex, LPWSTR lpName,
LpcchName рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╡рд░реНрдг рдореЗрдВ рдмрдлрд░ рд╕рд╛рдЗрдЬ рд╡рд╛рд▓реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: "рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдкреЙрдЗрдВрдЯрд░ рдЬреЛ рд╡рд░реНрдгреЛрдВ рдореЗрдВ
lpClass рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ"ред
рдЙрдкрдХреБрдВрдЬреА рд╕рд░рдгреА рдЖрдХрд╛рд░ 512 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ рдФрд░
wchar_t рдкреНрд░рдХрд╛рд░ рдХреЗ 256 рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЗрдВ, wchar_t 2 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ)ред рдпрд╣ 256 рд╣реИ рдЬрд┐рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, 512 рдХреЛ 2 рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ 1024 рдорд┐рд▓рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдкрдХреЛ рдЧреБрдгрд╛ рдХреЗ рдмрдЬрд╛рдп рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
DWORD cch_subkeyname = sizeof(subkeyname) / sizeof(subkeyname[0]);
рд╡реИрд╕реЗ,
cch_keyclass рдЪрд░ рдХреЗ рдорд╛рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред
рд╡рд░реНрдгрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрдлрд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддреА рд╣реИред рдРрд╕реЗ рд╕рднреА рдЕрдВрд╢реЛрдВ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
- V531 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдПрдХ рдЖрдХрд╛рд░ () рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ()ред cmGlobalVisualStudioGenerator.cxx 556
- V531 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдПрдХ рдЖрдХрд╛рд░ () рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ()ред cmGlobalVisualStudioGenerator.cxx 572
- V531 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдПрдХ рдЖрдХрд╛рд░ () рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ()ред cmGlobalVisualStudioGenerator.cxx 621
- V531 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдПрдХ рдЖрдХрд╛рд░ () рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ()ред cmGlobalVisualStudioGenerator.cxx 622
- V531 рдпрд╣ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдПрдХ рдЖрдХрд╛рд░ () рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЖрдХрд╛рд░ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ()ред cmGlobalVisualStudioGenerator.cxx 649
V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'this-> BuildFileStream' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: 133, 134. cmMakefileTargetGenerator.cxx 133
void cmMakefileTargetGenerator::CreateRuleFile() { .... this->BuildFileStream->SetCopyIfDifferent(true); if (!this->BuildFileStream) { return; } .... }
рдкреЙрдЗрдВрдЯрд░
рдпрд╣-> рдмрд┐рд▓реНрдбрдлрд╛рдЗрд▓рд╕реНрдЯреНрд░реАрдо рдЗрд╕рдХреА рд╡реИрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ
рдбрд┐рд░реЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдХреЛрдИ рдкрд░реЗрд╢рд╛рдиреА рдирд╣реАрдВ рд╣реБрдИ? рдиреАрдЪреЗ рдРрд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЗрд╕реЗ рдХрд╛рд░реНрдмрди рдХреЙрдкреА рдХреА рддрд░рд╣ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ
рд╡реА 595 рдЪреЗрддрд╛рд╡рдиреА рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдЗрддрдиреЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рд╕реЗ, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдирд┐рджрд╛рди рдХреА рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
- V595 nullptr рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 'рдЗрд╕-> рдлреНрд▓реИрдЧрдлрд╛рдЗрд▓рд╕реНрдЯреНрд░реАрдо' рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреЗрдХ рд▓рд╛рдЗрди: 303, 304. cmMakefileTargetGenerator.cxx 303
V614 Uninitialized рдкреЙрдЗрдВрдЯрд░ 'str' рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред cmVSSetupHelper.h 80
class SmartBSTR { public: SmartBSTR() { str = NULL; } SmartBSTR(const SmartBSTR& src) { if (src.str != NULL) { str = ::SysAllocStringByteLen((char*)str, ::SysStringByteLen(str)); } else { str = ::SysAllocStringByteLen(NULL, 0); } } .... private: BSTR str; };
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЕрд╕рдВрдЧрдард┐рдд
рд╕реНрдЯреНрд░реЗрдЯ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯрд╛рдЗрдкреЛ рдХреЗ рдХрд╛рд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
SysAllocStringByteLen рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ
рд╕рдордп , рдХрд┐рд╕реА рдХреЛ
src.str рд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред
V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рд▓реИрдВрд╕рд┐рдордмреЛрд▓' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 28 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
static int64_t expand(struct archive_read *a, int64_t end) { .... if ((lensymbol = read_next_symbol(a, &rar->lengthcode)) < 0) goto bad_data; if (lensymbol > (int)(sizeof(lengthbases)/sizeof(lengthbases[0]))) goto bad_data; if (lensymbol > (int)(sizeof(lengthbits)/sizeof(lengthbits[0]))) goto bad_data; len = lengthbases[lensymbol] + 2; if (lengthbits[lensymbol] > 0) { if (!rar_br_read_ahead(a, br, lengthbits[lensymbol])) goto truncated_data; len += rar_br_bits(br, lengthbits[lensymbol]); rar_br_consume(br, lengthbits[lensymbol]); } .... }
рдХреЛрдб рдХрд╛ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИред рдЬрдм
рд▓рдореНрдмрд╛рдИ рдФрд░
рд▓рдореНрдмрд╛рдИ рд╕рд░рдгрд┐рдпреЛрдВ рддрдХ
рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рд░рдгреА рд╕реВрдЪрдХрд╛рдВрдХ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдКрдкрд░ '> =' рдХреЗ рдмрдЬрд╛рдп '>' рдСрдкрд░реЗрдЯрд░ рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рдЪреЗрдХ рдПрдХ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рдореВрд▓реНрдп рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рд▓рдЧрд╛ред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рдСрдл-рдж-рд╡рди рдПрд░рд░ рдирд╛рдордХ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрд░рд░ рдкреИрдЯрд░реНрди рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред
рдЧреИрд░-рдорд╛рдиреНрдп рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рд░рдгреА рдПрдХреНрд╕реЗрд╕ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкреВрд░реА рд╕реВрдЪреА рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИ:
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рд▓реИрдВрд╕рд┐рдордмреЛрд▓' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 28 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рд▓реИрдВрд╕рд┐рдордмреЛрд▓' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 28 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рд▓реИрдВрд╕рд┐рдордмреЛрд▓' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 28 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рд▓реИрдВрд╕рд┐рдордмреЛрд▓' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 28 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
- V557 рдРрд░реЗ рдУрд╡рд░рд░рди рд╕рдВрднрд╡ рд╣реИред 'рдСрдлрд╕рд╛рдЗрдВрдмреЛрд▓' рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдорд╛рди 60 рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡
V773 рдлрд╝рдВрдХреНрд╢рди рдХреЛ 'testRun' рдкреЙрдЗрдВрдЯрд░ рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред cmCTestMultiProcessHandler.cxx 193
void cmCTestMultiProcessHandler::FinishTestProcess(cmCTestRunTest* runner, bool started) { .... delete runner; if (started) { this->StartNextTests(); } } bool cmCTestMultiProcessHandler::StartTestProcess(int test) { .... cmCTestRunTest* testRun = new cmCTestRunTest(*this);
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ред
TestRun рдкреЙрдЗрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдЬрд╛рд░реА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди
testRun-> StartTest рд░рд┐рдЯрд░реНрди
рд╕рд╣реА рд╣реИ ред рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛрдб рд╢рд╛рдЦрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдореЗрдореЛрд░реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЬрд╛рд░реА рд╣реЛ рдЬрд╛рддреА
рд╣реИ-> FinishTestProcessредрд╕рдВрд╕рд╛рдзрди рд░рд┐рд╕рд╛рд╡
V773 'fd' рд╣реИрдВрдбрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕рдВрд╕рд╛рдзрди рд░рд┐рд╕рд╛рд╡ рд╕рдВрднрд╡ рд╣реИред rhash.c 450
RHASH_API int rhash_file(....) { FILE* fd; rhash ctx; int res; hash_id &= RHASH_ALL_HASHES; if (hash_id == 0) { errno = EINVAL; return -1; } if ((fd = fopen(filepath, "rb")) == NULL) return -1; if ((ctx = rhash_init(hash_id)) == NULL) return -1;
рд╢рд░реНрддреЛрдВ рдореЗрдВ рдЕрдЬреАрдм рддрд░реНрдХ
V590 '* s! =' '0' && * s == '' 'рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрддреНрдпрдзрд┐рдХ рд╣реИ рдпрд╛ рдПрдХ рдЧрд▓рдд рдЪрд┐рддреНрд░рдг рд╣реИред рд╕рдВрдЧреНрд░рд╣_ cmdline.c 76
static ssize_t get_argument(struct archive_string *as, const char *p) { const char *s = p; archive_string_empty(as); while (*s != '\0' && *s == ' ') s++; .... }
* рдЕрд╢рдХреНрдд рдХреЗ рд╕рд╛рде рдЪрд░рд┐рддреНрд░ рдХреА рддреБрд▓рдирд╛ рдмреЗрдорд╛рдиреА рд╣реИред рд▓реВрдк рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдХрд┐ рдЪрд░рд┐рддреНрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреА рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред
V592 рджреЛ рдмрд╛рд░ рдХреЛрд╖реНрдардХ рджреНрд╡рд╛рд░рд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: ((рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐))ред рдХреЛрд╖реНрдардХ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рдореМрдЬреВрдж рд╣реИред cmCTestTestHandler.cxx 899
void cmCTestTestHandler::ComputeTestListForRerunFailed() { this->ExpandTestsToRunInformationForRerunFailed(); ListOfTests finalList; int cnt = 0; for (cmCTestTestProperties& tp : this->TestList) { cnt++;
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рдВрднрд╡рддрдГ рдХреЛрд╖реНрдардХ рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдРрд╕рд╛ рдХреЛрдИ рдмрдЧ рдирд╣реАрдВ рд╣реИ - рдмрд╕ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбрдмрд▓ рдмреНрд░реИрдХреЗрдЯред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдХреЛрдб рдореЗрдВ рдПрдХ рддрд░реНрдХ рддреНрд░реБрдЯрд┐ рд╣реИред
рдЬрд╛рд░реА рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЗрд╡рд▓ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реВрдЪреА
рдпрд╣-> рдЯреЗрд╕реНрдЯрдЯрд╛рдЙрди рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ рдФрд░
cnt рдЗрд╕рдореЗрдВ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИред рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛрдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдЙрд╕реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рд╢рд╛рдпрдж, рд╣рд╛рд▓рдд рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
if (this->TestsToRun.empty() || std::find(this->TestsToRun.begin(), this->TestsToRun.end(), cnt) == this->TestsToRun.end()) { continue; }
V592 рджреЛ рдмрд╛рд░ рдХреЛрд╖реНрдардХ рджреНрд╡рд╛рд░рд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: ((рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐))ред рдХреЛрд╖реНрдардХ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рдореМрдЬреВрдж рд╣реИред cmMessageCommand.cxx 73
bool cmMessageCommand::InitialPass(std::vector<std::string> const& args, cmExecutionStatus&) { .... } else if (*i == "DEPRECATION") { if (this->Makefile->IsOn("CMAKE_ERROR_DEPRECATED")) { fatal = true; type = MessageType::DEPRECATION_ERROR; level = cmake::LogLevel::LOG_ERROR; } else if ((!this->Makefile->IsSet("CMAKE_WARN_DEPRECATED") || this->Makefile->IsOn("CMAKE_WARN_DEPRECATED"))) { type = MessageType::DEPRECATION_WARNING; level = cmake::LogLevel::LOG_WARNING; } else { return true; } ++i; } .... }
рдпрд╣ рдПрдХ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдЕрдзрд┐рдХ рдЖрд╢реНрд╡рд╕реНрдд рд╣реВрдВ рдХрд┐ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдлрд╝рдВрдХреНрд╢рди
IsSet ("CMAKE_WARN_DEPRECATED") рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдорд╛рди
CMAKE_WARN_DEPRECATED рдорд╛рди рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди
IsOn ("CMAKE_WARN_DEPRECATED) рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реЗрдЯ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдкреВрд░рдХ рдСрдкрд░реЗрдЯрд░ рдмреЗрдорд╛рдиреА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рд╕рдорд╛рди
рдкреНрд░рдХрд╛рд░ рдФрд░
рд╕реНрддрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА
рд╣реИредV728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмреВрд▓ (рдП) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ! = рдмреВрд▓ (рдмреА)' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред cmCTestRunTest.cxx 151
bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started) { .... } else if ((success && !this->TestProperties->WillFail) || (!success && this->TestProperties->WillFail)) { this->TestResult.Status = cmCTestTestHandler::COMPLETED; outputStream << " Passed "; } .... }
рдпрд╣ рдХреЛрдб рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
} else if (success != this->TestProperties->WillFail) { this->TestResult.Status = cmCTestTestHandler::COMPLETED; outputStream << " Passed "; }
рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЬрдЧрд╣реЗрдВ:
- V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A && B) || ((A &&! B) 'рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐' рдмреВрд▓ (рдП) == рдмреВрд▓ (рдмреА) 'рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред cmCTestTestHandler.cxx 702
- V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмреВрд▓ (рдП) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ! = рдмреВрд▓ (рдмреА)' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред digest_sspi.c 443
- V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмреВрд▓ (рдП) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ! = рдмреВрд▓ (рдмреА)' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред tcp.c 1295
- V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмреВрд▓ (рдП) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ! = рдмреВрд▓ (рдмреА)' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред testDynamicLoader.cxx 58
- V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмреВрд▓ (рдП) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ! = рдмреВрд▓ (рдмреА)' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред testDynamicLoader.cxx 65
- V728 рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрд╛рдБрдЪ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдж '(A &&! B) || (рдП! рдФрд░ рдмреА) рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдмреВрд▓ (рдП) рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ! = рдмреВрд▓ (рдмреА)' рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред testDynamicLoader.cxx 72
рд╡рд┐рднрд┐рдиреНрди рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ
V523 'рддрддреНрдХрд╛рд▓реАрди' рдХрдерди рдмрд╛рдж рдХреЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЖрд░реНрдХрд╛рдЗрд╡_рдбреНрд░реЗрдб_рдмрд┐рд▓реНрдбрд░рдлреЙрд░реНрдо_рдЖрд░рд╕реА 415
static int _ar_read_header(struct archive_read *a, struct archive_entry *entry, struct ar *ar, const char *h, size_t *unconsumed) { .... if (strcmp(filename, "__.SYMDEF") == 0) { archive_entry_copy_pathname(entry, filename); return (ar_parse_common_header(ar, entry, h)); } archive_entry_copy_pathname(entry, filename); return (ar_parse_common_header(ar, entry, h)); }
рдЕрдВрддрд┐рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЕрдВрддрд┐рдо рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИред рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╢рд░реНрдд рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
V535 рдЪрд░ 'i' рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдФрд░ рдмрд╛рд╣рд░реА рд▓реВрдк рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрди: 2220, 2241ред рдорд▓реНрдЯреАрд╕реА 2241
static CURLMcode singlesocket(struct Curl_multi *multi, struct Curl_easy *data) { .... for(i = 0; (i< MAX_SOCKSPEREASYHANDLE) &&
рдмрд╛рд╣рд░реА рдФрд░ рднреАрддрд░реА рдЫреЛрд░реЛрдВ рдореЗрдВ рд▓реВрдк рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ
i рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдорд╛рди рдлрд┐рд░ рд╕реЗ рдЖрдВрддрд░рд┐рдХ рд▓реВрдк рдореЗрдВ рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдпрд╣рд╛рдБ рдмрдЧ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рд╕рдВрджрд┐рдЧреНрдз рд╣реИред
V519 'рдЯреИрдЧрд╕реНрдЯреНрд░рд┐рдВрдЧ' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 84, 86. cmCPackLog.cxx 86
void cmCPackLog::Log(int tag, const char* file, int line, const char* msg, size_t length) { .... if (tag & LOG_OUTPUT) { output = true; display = true; if (needTagString) { if (!tagString.empty()) { tagString += ","; } tagString = "VERBOSE"; } } if (tag & LOG_WARNING) { warning = true; display = true; if (needTagString) { if (!tagString.empty()) { tagString += ","; } tagString = "WARNING"; } } .... }
рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рдирдП рдорд╛рди рдХреЗ рд╕рд╛рде
рдЯреИрдЧрд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд░ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реИред рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рд╣реИ рдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ред рд╢рд╛рдпрдж, '=' рдФрд░ '+' = рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдореИрд▓рд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдРрд╕реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА:
- V519 'рдЯреИрдЧрд╕реНрдЯреНрд░рд┐рдВрдЧ' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 94, 96. cmCPackLog.cxx 96
- V519 'рдЯреИрдЧрд╕реНрдЯреНрд░рд┐рдВрдЧ' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: 104, 106. cmCPackLog.cxx 106
- V519 'рдЯреИрдЧрд╕реНрдЯреНрд░рд┐рдВрдЧ' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ: 114, 116. cmCPackLog.cxx 116
- V519 'рдЯреИрдЧрд╕реНрдЯреНрд░рд┐рдВрдЧ' рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 125, 127. cmCPackLog.cxx 127
V519 'aes-> aes_set' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 4052, 4054ред рдЖрд░реНрдХрд╛рдЗрд╡_рд╕реНрдЯреНрд░рд┐рдВрдЧред 4054
int archive_mstring_copy_utf8(struct archive_mstring *aes, const char *utf8) { if (utf8 == NULL) { aes->aes_set = 0;
AES_SET_UTF8 рдорд╛рди рдХреА рдЬрдмрд░рди рд╕реЗрдЯрд┐рдВрдЧ рд╕рдВрджрд┐рдЧреНрдз рд▓рдЧрддреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреЛрдб рдХрд┐рд╕реА рднреА рдбреЗрд╡рд▓рдкрд░ рдХреЛ рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИред
рдЗрд╕ рдХреЛрдб рдХреЛ рджреВрд╕рд░реА рдЬрдЧрд╣ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- V519 'aes-> aes_set' рдЪрд░ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рдмрд╛рд░ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред рдЪреЗрдХ рд▓рд╛рдЗрдиреЗрдВ: 4066, 4068ред рдЖрд░реНрдХрд╛рдЗрд╡_рд╕реНрдЯреНрд░рд┐рдВрдЧред 4068
CMake рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреАрдбрд╝реЗ рдХреИрд╕реЗ рдЦреЛрдЬреЗрдВ
рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╕реАрдПрдордХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдПрдХ-рджреЛ-рддреАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╕рд╛рди рдХреИрд╕реЗ рдЬрд╛рдВрдЪреЗрдВред
рд╡рд┐рдВрдбреЛрдЬ / рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛрд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП, рдЖрдк CMake GUI рдпрд╛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
cmake -G "Visual Studio 15 2017 Win64" ..
рдЕрдЧрд▓рд╛, рдЖрдк .sln рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП
рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓рд┐рдирдХреНрд╕ / macOSрдЗрди рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ compile_commands.json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрдк рдЗрд╕реЗ CMake рдореЗрдВ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=On ..
рдЕрдВрддрд┐рдо рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
pvs-studio-analyzer analyze -l /path/to/PVS-Studio.lic -o /path/to/project.log -e /path/to/exclude-path -j<N>
рд╣рдордиреЗ рд╕реАрдПрдордХреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдХреБрдЫ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред CMake рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг GitHub рдкрд░ рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
pvs-studio-cmake-example ред
рдирд┐рд╖реНрдХрд░реНрд╖
CMake рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рджрд░реНрд╢рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдореБрджреНрджреЛрдВ рдХреЛ
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЬреИрд╕реЗ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкрд░рд┐рдгрд╛рдо рдкрд╕рдВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ C рдФрд░ C ++ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ, рддреЛ рдореИрдВ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ C # рдФрд░ Java рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕
рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдХрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред