āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ cppcheck 2.6-āĻāĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ C āĻāĻŦāĻ C++ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻā§āĻĄā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ -āĻŽāĻžāĻ¨āĻ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻŦā§āĻĄā§āĻĄ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻš āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ cppcheck āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨, āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻšāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻĄ āĻļā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻĄ āĻ¸āĻŽā§āĻŽāĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻŽāĻ¤ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻā§āĻĄ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻšāĻ¯āĻŧ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻā§āĻ° āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻŦāĻž āĻā§āĻ˛ā§āĻ¯āĻžāĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻĒāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻĄā§āĻŦāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻšāĻ¯ā§āĻā§ āĻā§āĻĄ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋāĻ¤ā§ donate-cpu.py āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ GPLv3 āĻ˛āĻžāĻāĻ¸ā§āĻ¨ā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻŋāĻĒāĻŋāĻĒāĻŋāĻā§āĻā§āĻ° āĻŦāĻŋāĻāĻžāĻļ āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ¸ā§āĻ°āĻā§āĻˇāĻž āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ āĻŦāĻŋāĻĒāĻā§āĻāĻ¨āĻ āĻĄāĻŋāĻāĻžāĻāĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻāĻ°ā§āĨ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻāĻ¤āĻŋāĻŦāĻžāĻāĻ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻžāĨ¤ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§: āĻ āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦāĻšā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°, āĻļā§āĻ¨ā§āĻ¯ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻžāĻāĻ¨, āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻāĻāĻžāĻ°āĻĢā§āĻ˛ā§, āĻā§āĻ˛ āĻŦāĻŋāĻ āĻļāĻŋāĻĢāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨, āĻā§āĻ˛ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°, āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž, STL āĻāĻ° āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°, āĻ¨āĻžāĻ˛ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸, āĻĒā§āĻ°āĻā§āĻ¤ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻĒāĻ°ā§ āĻā§āĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻŦāĻžāĻĢāĻžāĻ°ā§, āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ°āĻ°āĻžāĻ¨, āĻļā§āĻ°ā§ āĻ¨āĻž āĻāĻ°āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻļā§āĻŦā§:
- āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻ āĻā§āĻ°ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
- āĻĢāĻžāĻāĻļāĻ¨ āĻŦāĻĄāĻŋāĻ¤ā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°ā§āĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ;
- āĻāĻāĻžāĻ°āĻ˛ā§āĻ¯āĻžāĻĒāĻŋāĻ āĻĄā§āĻāĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§, āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻāĻāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§;
- āĻ¯ā§ āĻŽāĻžāĻ¨āĻāĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¤āĻž āĻāĻžāĻāĻĒā§āĻ° āĻŽāĻžāĻ¨ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻŦāĻžāĻāĻ°ā§;
- āĻāĻĒāĻŋ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ std::move(local);
- āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻā§āĻ°ā§āĻŽā§ (āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ) āĻĒāĻĄāĻŧāĻžāĻ° āĻāĻŦāĻ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¸āĻžāĻĨā§ āĻā§āĻ˛āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž;
- āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ°āĻā§ āĻĄāĻžāĻ¯āĻŧāĻžāĻāĻ¨āĻ¸ā§āĻāĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- ValueFlow-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĻā§āĻāĻŋ āĻ āĻāĻžāĻ¨āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĄā§āĻ˛ā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§;
- āĻā§āĻā§āĻ¨ "āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤" āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻā§āĻ˛āĻŋ #include-āĻāĻ° āĻ¸āĻžāĻĨā§āĻ āĻŽāĻŋāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§;
- āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻā§āĻ¯āĻžāĻ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ , āĻāĻŦāĻ āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨, āĻ¯āĻž std::size, std::empty, std::begin, std::end, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻŽāĻ¤ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¯āĻŧā§āĻ˛āĻĄ āĻŦāĻž āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§;
- āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻā§āĻ¯āĻžāĻ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻŽāĻžāĻ˛āĻŋāĻāĻžāĻ¨āĻž āĻāĻā§ āĻ¯ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯. āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻā§āĻ˛āĻ¨ā§āĻ¤ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- âcppcheck-build-dir āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§;
- htmlreport āĻāĻāĻ¨ āĻ˛ā§āĻāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻāĻŋāĻ āĻŦā§āĻ˛ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§);
- āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¯āĻž āĻ§ā§āĻ°ā§āĻŦāĻ āĻ¨āĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§;
- āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻā§āĻ° āĻĒā§āĻā§āĻā§āĻā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤āĻāĻžāĻŦā§, 2012, 1 āĻāĻŦāĻ 2 āĻŦā§āĻ¯āĻ¤ā§āĻ¤, āĻ¸āĻāĻļā§āĻ§āĻ¨ā§ 1.1 āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ 1.2 āĻ¸āĻš Misra C 17.3-āĻāĻ° āĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ā§ˇ āĻā§āĻ 1.1 āĻāĻŦāĻ 1.2 āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻŦā§āĨ¤ āĻ¯āĻžāĻāĻžāĻāĻāĻ°āĻŖ 17.3 āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻ¯ā§āĻŽāĻ¨ GCC āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru