рдХреИрд╕реЗ PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА ... PVS-Studio рдХреА рдХрд╣рд╛рдиреА

рдЪрд┐рддреНрд░ 1

рдпрд╣ рдПрдХ рдЫреЛрдЯреА рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ - рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реБрдИ рдереАред

PVS-Studio_Cmd (рдФрд░ рд╕рд╛рде рд╣реА рдХреБрдЫ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ) рдореЗрдВ рд╣рдо рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рддрд░реНрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдХрдорд╛рдВрдбрд▓рд╛рдЗрдиред

рдЖрдЬ рдореИрдВ PVS-Studio_Cmd рдореЗрдВ рдирдП рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рдерд╛, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рддрд░реНрдХреЛрдВ рдХреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВ рдЗрд╕реЗ рдбреАрдмрдЧ рднреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрд░рд┐рдЪрд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

рддреЛ, рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ, рд╕рдВрдХрд▓рд┐рдд, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛, ii ...

рдЪрд┐рддреНрд░ 3


рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ NullReferenceException рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ ред рдЗрд╕ рддрд░рдл рд╕реЗ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - рдореИрдВ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдЕрд╢рдХреНрдд рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗрддрд╛ред

рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ NullReferenceException рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдкрд╡рд╛рдж рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИрдВ)ред

рдЪрд┐рддреНрд░ 2


рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рднреА NullReferenceException (рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред

рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ (рдФрд░ рдХрд╣рд╛рдВ), рдореИрдВрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдбреАрдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реЛрд░реНрд╕ рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред рд╕рдВрд╕реНрдХрд░рдг 1.9.71 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдареАрдХ рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдЕрдм рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдЙрдкрдпреБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реВрдВ, рдбреАрдмрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ:

рдЪрд┐рддреНрд░ 4


рддреЛ, рдЕрдкрд╡рд╛рдж рдХрд╛ рд╕реНрдерд╛рди рд╕реНрдкрд╖реНрдЯ рд╣реИ - helpInfo рд╢реВрдиреНрдп рд╣реИ , рдЬреЛ рд╡рд╛рдо рдЖрд╡реГрддреНрддрд┐ рд╕рдВрдкрддреНрддрд┐ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ NullReferenceException рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

рдФрд░ рдлрд┐рд░ рдореИрдВ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рд╣реЛ рдЧрдпрд╛ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╕реА # рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд╕реБрд╕реНрдд рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рдбреЗрд░реЗрдлреЗрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрдВрдЯрд░рдкреНрд░реЛрдбреЗрдХреНрдЯреЛрд░рд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдЪрд░реНрдЪрд╛ рдХреЗ рддрд╣рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХреА, рдФрд░ рдЕрдиреНрдп рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ, рдореИрдВрдиреЗ рд╡рд╣реА рджреЗрдЦрд╛, рдЬрд┐рд╕рдХреА рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред

PVS-Studio рдЪреЗрддрд╛рд╡рдиреА : V3080 'рд╣реЗрд▓реНрдкрдЗрдиреНрдлреЛ.рд▓рд┐рдлреНрдЯ' рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддрддрд╛ рдХреЛ рджреВрд░ рдХрд░рддрд╛ рд╣реИред 2 рддрд░реНрдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: helpInfoред Parser.cs 405

рд╣рд╛рдБ, рд╡рд╣рд╛рдБ рдпрд╣ рд╣реИ! рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВред

private bool DoParseArgumentsVerbs( string[] args, object options, ref object verbInstance) { var verbs = ReflectionHelper.RetrievePropertyList<VerbOptionAttribute>(options); var helpInfo = ReflectionHelper.RetrieveMethod<HelpVerbOptionAttribute>(options); if (args.Length == 0) { if (helpInfo != null || _settings.HelpWriter != null) { DisplayHelpVerbText(options, helpInfo, null); // <= } return false; } .... } 

DisplayHelpVerbText рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ - helpInfo ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ if рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреА рддрддреНрдХрд╛рд▓реАрди рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИред рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдХрд┐ рддрдм- рдЪрд░ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╢рд╛рдЦрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • helpInfo == рдЕрд╢рдХреНрдд ;
  • _settings.HelpWriter! = null ;

рдЖрдЗрдП DisplayHelpVerbText рд╡рд┐рдзрд┐ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рджреЗрдЦреЗрдВ:

 private void DisplayHelpVerbText( object options, Pair<MethodInfo, HelpVerbOptionAttribute> helpInfo, string verb) { string helpText; if (verb == null) { HelpVerbOptionAttribute.InvokeMethod(options, helpInfo, null, out helpText); } else { HelpVerbOptionAttribute.InvokeMethod(options, helpInfo, verb, out helpText); } if (_settings.HelpWriter != null) { _settings.HelpWriter.Write(helpText); } } 

рдЪреВрдБрдХрд┐ рдХреНрд░рд┐рдпрд╛ == рдЕрд╢рдХреНрдд (рд╡рд┐рдзрд┐ рдХреЙрд▓ рджреЗрдЦреЗрдВ) рд╣рдо рддрддреНрдХрд╛рд▓реАрди рдХрдерди рдХреА рддрддреНрдХрд╛рд▓реАрди рд╢рд╛рдЦрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдпрджреНрдпрдкрд┐ рдЕрдиреНрдп рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реЛрдЧреА, рд╣рдо рддрддреНрдХрд╛рд▓реАрди рд╢рд╛рдЦрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдерд╛ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ helpInfo рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЕрдм рдЖрдЗрдП HelpVerbOptionAttribute.InvokeMethod рдкрджреНрдзрддрд┐ рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЛ рджреЗрдЦреЗрдВ ред рджрд░рдЕрд╕рд▓, рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕реЗ рдКрдкрд░ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛:

 internal static void InvokeMethod( object target, Pair<MethodInfo, HelpVerbOptionAttribute> helpInfo, string verb, out string text) { text = null; var method = helpInfo.Left; if (!CheckMethodSignature(method)) { throw new MemberAccessException( SR.MemberAccessException_BadSignatureForHelpVerbOptionAttribute .FormatInvariant(method.Name)); } text = (string)method.Invoke(target, new object[] { verb }); } 

helpInfo.Left рдХреЛ рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА helpInfo рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддреА рд╣реИред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреА, рдФрд░ рдпрд╣ рд╣реБрдЖред

рдирд┐рд╖реНрдХрд░реНрд╖

рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рдирд┐рдХрд▓рд╛ рдХрд┐ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреА рдорджрдж рд╕реЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╢реНрди рдХреЗ рдЙрддреНрддрд░ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ "рдХреНрдпрд╛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдвреВрдВрдврддрд╛ рд╣реИ?"ред :) рдпрд╣ рди рдХреЗрд╡рд▓ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдореЗрдВ, рдмрд▓реНрдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╡рд╣рд╛рдВ рднреА рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ?



рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рд░реНрдЧреЗрдИ рд╡рд╛рд╕рд┐рд▓рд┐рд╡ред рдХреИрд╕реЗ PVS- рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкрд╛рдИ рдЧрдИ ... PVS-Studio рдХреА рдХрд╣рд╛рдиреА

Source: https://habr.com/ru/post/hi462949/


All Articles