Я интегрирую анализ cppcheck с CMake, указав следующую командную строку:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_CPPCHECK="cppcheck;--enable=all;--suppress=missingIncludeSystem;--inline-suppr;--std=c++17;--error-exitcode=1"
и работает хорошо.
После обновления Ubuntu с помощью cppcheck версии 2.13.0 я начал видеть это дополнительное сообщение/предупреждение :
...
[89/108] Building CXX object include/boost/multi/adaptors/fftw/test/CMakeFiles/combinations.cpp.x.dir/combinations.cpp.o
Checking /home/user/boost-multi/include/boost/multi/adaptors/fftw/test/combinations.cpp ...
nofile:0:0: information: Active checkers: 4/592 (use --checkers-report= to see details) [checkersReport]
...
Для каждой цели!
Что означает сообщение «Активные шашки: 4/592»? Почему 4?
В справке написано:
$ cppcheck --help
...
--checkers-report=
Write a report of all the active checkers to the given file.
...
Но это не помогает мне понять.
Когда я добавляю параметр --checkers-report=cppcheck.report, Я получаю следующий файл
$ cat ./.build.g++.plus/cppcheck.report
Critical errors
---------------
No critical errors, all files were checked.
Important: A n a l y s i s i s s t i l l n o t g u a r a n t e e d t o b e ' c o m p l e t e ' i t i s p o s s i b l e t h e r e a r e f a l s e n e g a t i v e s . < b r / > < b r / > < b r / > O p e n s o u r c e c h e c k e r s < b r / > - - - - - - - - - - - - - - - - - - - - < b r / > N o C h e c k 6 4 B i t P o r t a b i l i t y : : p o i n t e r a s s i g n m e n t r e q u i r e : p o r t a b i l i t y < b r / > N o C h e c k A s s e r t : : a s s e r t W i t h S i d e E f f e c t s r e q u i r e : w a r n i n g < b r / > N o C h e c k A u t o V a r i a b l e s : : a s s i g n F u n c t i o n A r g r e q u i r e : s t y l e , w a r n i n g < b r / > N o C h e c k A u t o V a r i a b l e s : : a u t o V a r i a b l e s < b r / > N o C h e c k A u t o V a r i a b l e s : : c h e c k V a r L i f e t i m e < b r / > N o C h e c k B o o l : : c h e c k A s s i g n B o o l T o F l o a t r e q u i r e : s t y l e , c + + < b r / > N o C h e c k B o o l : : c h e c k A s s i g n B o o l T o P o i n t e r < b r / > N o C h e c k B o o l : : c h e c k B i t w i s e O n B o o l e a n r e q u i r e : s t y l e , i n c o n c l u s i v e < b r / > N o C h e c k B o o l : : c h e c k C o m p a r i s o n O f B o o l E x p r e s s i o n W i t h I n t r e q u i r e : w a r n i n g < b r / > N o C h e c k B o o l : : c h e c k C o m p a r i s o n O f B o o l W i t h B o o l r e q u i r e : s t y l e , c + + < b r / > N o C h e c k B o o l : : c h e c k C o m p a r i s o n O f B o o l W i t h I n t r e q u i r e : w a r n i n g , c + + < b r / > N o C h e c k B o o l : : c h e c k C o m p a r i s o n O f F u n c R e t u r n i n g B o o l r e q u i r e : s t y l e , c + + < b r / > N o C h e c k B o o l : : c h e c k I n c r e m e n t B o o l e a n r e q u i r e : s t y l e < b r / > N o C h e c k B o o l : : p o i n t e r A r i t h B o o l < b r / > N o C h e c k B o o l : : r e t u r n V a l u e O f F u n c t i o n R e t u r n i n g B o o l r e q u i r e : s t y l e < b r / > N o C h e c k B o o s t : : c h e c k B o o s t F o r e a c h M o d i f i c a t i o n < b r / > Y e s C h e c k B u f f e r O v e r r u n : : a n a l y s e W h o l e P r o g r a m < b r / > N o C h e c k B u f f e r O v e r r u n : : a r g u m e n t S i z e r e q u i r e : w a r n i n g < b r / > N o C h e c k B u f f e r O v e r r u n : : a r r a y I n d e x < b r / > N o C h e c k B u f f e r O v e r r u n : : a r r a y I n d e x T h e n C h e c k < b r / > N o C h e c k B u f f e r O v e r r u n : : b u f f e r O v e r f l o w < b r / > N o C h e c k B u f f e r O v e r r u n : : n e g a t i v e A r r a y S i z e < b r / > N o C h e c k B u f f e r O v e r r u n : : o b j e c t I n d e x < b r / > N o C h e c k B u f f e r O v e r r u n : : p o i n t e r A r i t h m e t i c r e q u i r e : p o r t a b i l i t y < b r / > N o C h e c k B u f f e r O v e r r u n : : s t r i n g N o t Z e r o T e r m i n a t e d r e q u i r e : w a r n i n g , i n c o n c l u s i v e < b r / > Y e s C h e c k C l a s s : : a n a l y s e W h o l e P r o g r a m < b r / > N o C h e c k C l a s s : : c h e c k C o n s t r e q u i r e : s t y l e , i n c o n c l u s i v e < b r / > N o C h e c k C l a s s : : c h e c k C o n s t r u c t o r s r e q u i r e : s t y l e , w a r n i n g < b r / > N o C h e c k C l a s s : : c h e c k C o p y C o n s t r u c t o r s r e q u i r e : w a r n i n g < b r / > N o C h e c k C l a s s : : c h e c k D u p l I n h e r i t e d M e m b e r s r e q u i r e : w a r n i n g < b r / > N o C h e c k C l a s s : : c h e c k E x p l i c i t C o n s t r u c t o r s r e q u i r e : s t y l e < b r / > N o C h e c k C l a s s : : c h e c k M e m s e t < b r / > N o C h e c k C l a s s : : c h e c k M i s s i n g O v e r r i d e r e q u i r e : s t y l e , c + + 0 3 < b r / > N o C h e c k C l a s s : : c h e c k S e l f I n i t i a l i z a t i o n < b r / > N o C h e c k C l a s s : : c h e c k T h i s U s e A f t e r F r e e r e q u i r e : w a r n i n g < b r / > N o C h e c k C l a s s : : c h e c k U n s a f e C l a s s R e f M e m b e r r e q u i r e : w a r n i n g , s a f e C h e c k s < b r / > N o C h e c k C l a s s : : c h e c k U s e l e s s O v e r r i d e r e q u i r e : s t y l e < b r / > N o C h e c k C l a s s : : c h e c k V i r t u a l F u n c t i o n C a l l I n C o n s t r u c t o r r e q u i r e : w a r n i n g < b r / > N o C h e c k C l a s s : : i n i t i a l i z a t i o n L i s t U s a g e r e q u i r e : p e r f o r m a n c e < b r / > N o C h e c k C l a s s : : i n i t i a l i z e r L i s t O r d e r r e q u i r e : s t y l e , i n c o n c l u s i v e < b r / > N o C h e c k C l a s s : : o p e r a t o r E q R e t R e f T h i s r e q u i r e : s t y l e < b r / > N o C h e c k C l a s s : : o p e r a t o r E q T o S e l f r e q u i r e : w a r n i n g < b r / > N o C h e c k C l a s s : : p r i v a t e F u n c t i o n s r e q u i r e : s t y l e < b r / > N o C h e c k C l a s s : : t h i s S u b t r a c t i o n r e q u i r e : w a r n i n g < b r / > N o C h e c k C l a s s : : v i r t u a l D e s t r u c t o r < b r / > N o C h e c k C o n d i t i o n : : a l w a y s T r u e F a l s e r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : a s s i g n I f r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : c h e c k A s s i g n m e n t I n C o n d i t i o n r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : c h e c k B a d B i t m a s k C h e c k r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : c h e c k C o m p a r e V a l u e O u t O f T y p e R a n g e r e q u i r e : s t y l e , p l a t f o r m < b r / > N o C h e c k C o n d i t i o n : : c h e c k D u p l i c a t e C o n d i t i o n a l A s s i g n r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : c h e c k I n c o r r e c t L o g i c O p e r a t o r r e q u i r e : s t y l e , w a r n i n g < b r / > N o C h e c k C o n d i t i o n : : c h e c k I n v a l i d T e s t F o r O v e r f l o w r e q u i r e : w a r n i n g < b r / > N o C h e c k C o n d i t i o n : : c h e c k M o d u l o A l w a y s T r u e F a l s e r e q u i r e : w a r n i n g < b r / > N o C h e c k C o n d i t i o n : : c h e c k P o i n t e r A d d i t i o n R e s u l t N o t N u l l r e q u i r e : w a r n i n g < b r / > N o C h e c k C o n d i t i o n : : c l a r i f y C o n d i t i o n r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : c o m p a r i s o n r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : d u p l i c a t e C o n d i t i o n r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : m u l t i C o n d i t i o n r e q u i r e : s t y l e < b r / > N o C h e c k C o n d i t i o n : : m u l t i C o n d i t i o n 2 r e q u i r e : w a r n i n g < b r / > N o C h e c k E x c e p t i o n S a f e t y : : c h e c k C a t c h E x c e p t i o n B y V a l u e r e q u i r e : s t y l e < b r / > N o C h e c k E x c e p t i o n S a f e t y : : c h e c k R e t h r o w C o p y r e q u i r e : s t y l e < b r / > N o C h e c k E x c e p t i o n S a f e t y : : d e a l l o c T h r o w r e q u i r e : w a r n i n g < b r / > N o C h e c k E x c e p t i o n S a f e t y : : d e s t r u c t o r s r e q u i r e : w a r n i n g < b r / > N o C h e c k E x c e p t i o n S a f e t y : : n o t h r o w T h r o w s < b r / > N o C h e c k E x c e p t i o n S a f e t y : : r e t h r o w N o C u r r e n t E x c e p t i o n < b r / > N o C h e c k E x c e p t i o n S a f e t y : : u n h a n d l e d E x c e p t i o n S p e c i f i c a t i o n r e q u i r e : s t y l e , i n c o n c l u s i v e < b r / > N o C h e c k F u n c t i o n s : : c h e c k I g n o r e d R e t u r n V a l u e r e q u i r e : s t y l e , w a r n i n g < b r / > N o C h e c k F u n c t i o n s : : c h e c k M a t h F u n c t i o n s r e q u i r e : s t y l e , w a r n i n g , c 9 9 , c + + 1 1 < b r / > N o C h e c k F u n c t i o n s : : c h e c k M i s s i n g R e t u r n < b r / > N o C h e c k F u n c t i o n s : : c h e c k P r o h i b i t e d F u n c t i o n s < b r / > N o C h e c k F u n c t i o n s : : i n v a l i d F u n c t i o n U s a g e < b r / > N o C h e c k F u n c t i o n s : : m e m s e t I n v a l i d 2 n d P a r a m r e q u i r e : w a r n i n g , p o r t a b i l i t y < b r / > N o C h e c k F u n c t i o n s : : m e m s e t Z e r o B y t e s r e q u i r e : w a r n i n g < b r / > N o C h e c k F u n c t i o n s : : r e t u r n L o c a l S t d M o v e r e q u i r e : p e r f o r m a n c e , c + + 1 1 < b r / > N o C h e c k F u n c t i o n s : : u s e S t a n d a r d L i b r a r y r e q u i r e : s t y l e < b r / > N o C h e c k I O : : c h e c k C o u t C e r r M i s u s a g e r e q u i r e : c < b r / > N o C h e c k I O : : c h e c k F i l e U s a g e < b r / > N o C h e c k I O : : c h e c k W r o n g P r i n t f S c a n f A r g u m e n t s < b r / > N o C h e c k L e a k A u t o V a r : : c h e c k r e q u i r e : n o t c l a n g < b r / > N o C h e c k M e m o r y L e a k I n C l a s s : : c h e c k < b r / > N o C h e c k M e m o r y L e a k I n F u n c t i o n : : c h e c k R e a l l o c U s a g e < b r / > N o C h e c k M e m o r y L e a k N o V a r : : c h e c k < b r / > N o C h e c k M e m o r y L e a k S t r u c t M e m b e r : : c h e c k < b r / > Y e s C h e c k N u l l P o i n t e r : : a n a l y s e W h o l e P r o g r a m < b r / > N o C h e c k N u l l P o i n t e r : : a r i t h m e t i c < b r / > N o C h e c k N u l l P o i n t e r : : n u l l C o n s t a n t D e r e f e r e n c e < b r / > N o C h e c k N u l l P o i n t e r : : n u l l P o i n t e r < b r / > N o C h e c k O t h e r : : c h e c k A c c e s s O f M o v e d V a r i a b l e r e q u i r e : c + + 1 1 , w a r n i n g < b r / > N o C h e c k O t h e r : : c h e c k C a s t I n t T o C h a r A n d B a c k r e q u i r e : w a r n i n g < b r / > N o C h e c k O t h e r : : c h e c k C h a r V a r i a b l e r e q u i r e : w a r n i n g , p o r t a b i l i t y < b r / > N o C h e c k O t h e r : : c h e c k C o m p a r e P o i n t e r s < b r / > N o C h e c k O t h e r : : c h e c k C o m p a r i s o n F u n c t i o n I s A l w a y s T r u e O r F a l s e r e q u i r e : w a r n i n g < b r / > N o C h e c k O t h e r : : c h e c k C o n s t P o i n t e r r e q u i r e : s t y l e < b r / > N o C h e c k O t h e r : : c h e c k D u p l i c a t e B r a n c h r e q u i r e : s t y l e , i n c o n c l u s i v e < b r / > N o C h e c k O t h e r : : c h e c k D u p l i c a t e E x p r e s s i o n r e q u i r e : s t y l e , w a r n i n g < b r / > N o C h e c k O t h e r : : c h e c k E v a l u a t i o n O r d e r r e q u i r e : C / C + + 0 3 < b r / > N o C h e c k O t h e r : : c h e c k F u n c A r g N a m e s D i f f e r e n t r e q u i r e : s t y l e , w a r n i n g , i n c o n c l u s i v e < b r / > N o C h e c k O t h e r : : c h e c k I n c o m p l e t e A r r a y F i l l r e q u i r e : w a r n i n g , p o r t a b i l i t y , i n c o n c l u s i v e < b r / > N o C h e c k O t h e r : : c h e c k I n c o m p l e t e S t a t e m e n t r e q u i r e : w a r n i n g < b r / > N o C h e c k O t h e r : : c h e c k I n t e r l o c k e d D e c r e m e n t r e q u i r e : w i n d o w s - p l a t f o r m < b r / > N o C h e c k O t h e r : : c h e c k I n v a l i d F r e e < b r / > N o C h e c k O t h e r : : c h e c k K n o w n A r g u m e n t r e q u i r e : s t y l e < b r / > N o C h e c k O t h e r : : c h e c k K n o w n P o i n t e r T o B o o l r e q u i r e : s t y l e < b r / > N o C h e c k O t h e r : : c h e c k M i s u s e d S c o p e d O b j e c t r e q u i r e : s t y l e , c + + < b r / > N o C h e c k O t h e r : : c h e c k M o d u l o O f O n e r e q u i r e : s t y l e < b r / > N o C h e c k O t h e r : : c h e c k N a n I n A r i t h m e t i c E x p r e s s i o n r e q u i r e : s t y l e < b r / > N o C h e c k O t h e r : : c h e c k N e g a t i v e B i t w i s e S h i f t < b r / > N o C h e c kOther::checkOverlappingWrite
No CheckOther::checkPassByReference require:performance,c++
No CheckOther::checkRedundantAssignment require:style
No CheckOther::checkRedundantCopy require:c++,performance,inconclusive
No CheckOther::checkRedundantPointerOp require:style
No CheckOther::checkShadowVariables require:style
No CheckOther::checkSignOfUnsignedVariable require:style
No CheckOther::checkSuspiciousCaseInSwitch require:warning,inconclusive
No CheckOther::checkSuspiciousSemicolon require:warning,inconclusive
No CheckOther::checkUnreachableCode require:style
No CheckOther::checkUnusedLabel require:style,warning
No CheckOther::checkVarFuncNullUB require:portability
No CheckOther::checkVariableScope require:style,notclang
No CheckOther::checkZeroDivision
No CheckOther::clarifyCalculation require:style
No CheckOther::clarifyStatement require:warning
No CheckOther::invalidPointerCast require:portability
No CheckOther::redundantBitwiseOperationInSwitch require:warning
No CheckOther::warningOldStylePointerCast require:style,c++
No CheckPostfixOperator::postfixOperator require:performance
No CheckSizeof::checkSizeofForArrayParameter require:warning
No CheckSizeof::checkSizeofForNumericParameter require:warning
No CheckSizeof::checkSizeofForPointerSize require:warning
No CheckSizeof::sizeofCalculation require:warning
No CheckSizeof::sizeofFunction require:warning
No CheckSizeof::sizeofVoid require:portability
No CheckSizeof::sizeofsizeof require:warning
No CheckSizeof::suspiciousSizeofCalculation require:warning,inconclusive
No CheckStl::checkDereferenceInvalidIterator require:warning
No CheckStl::checkDereferenceInvalidIterator2
No CheckStl::checkFindInsert require:performance
No CheckStl::checkMutexes require:warning
No CheckStl::erase
No CheckStl::if_find require:warning,performance
No CheckStl::invalidContainer
No CheckStl::iterators
No CheckStl::knownEmptyContainer require:style
No CheckStl::misMatchingContainerIterator
No CheckStl::misMatchingContainers
No CheckStl::missingComparison require:warning
No CheckStl::negativeIndex
No CheckStl::outOfBounds
No CheckStl::outOfBoundsIndexExpression
No CheckStl::redundantCondition require:style
No CheckStl::size require:performance,c++03
No CheckStl::stlBoundaries
No CheckStl::stlOutOfBounds
No CheckStl::string_c_str
No CheckStl::useStlAlgorithm require:style
No CheckStl::uselessCalls require:performance,warning
No CheckString::checkAlwaysTrueOrFalseStringCompare require:warning
No CheckString::checkIncorrectStringCompare require:warning
No CheckString::checkSuspiciousStringCompare require:warning
No CheckString::overlappingStrcmp require:warning
No CheckString::sprintfOverlappingData
No CheckString::strPlusChar
No CheckString::stringLiteralWrite
No CheckType::checkFloatToIntegerOverflow
No CheckType::checkIntegerOverflow require:platform
No CheckType::checkLongCast require:style
No CheckType::checkSignConversion require:warning
No CheckType::checkTooBigBitwiseShift require:platform
No CheckUninitVar::check
No CheckUninitVar::valueFlowUninit
Yes CheckUnusedFunctions::analyseWholeProgram
No CheckUnusedVar::checkFunctionVariableUsage require:style
No CheckUnusedVar::checkStructMemberUsage require:style
No CheckVaarg::va_list_usage require:notclang
No CheckVaarg::va_start_argument
Premium checkers
----------------
Not available, Cppcheck Premium is not used
Autosar
-------
Not available, Cppcheck Premium is not used
Cert C
------
Not available, Cppcheck Premium is not used
Cert C++
--------
Not available, Cppcheck Premium is not used
Misra C
-------
Misra is not enabled
Misra C++ 2008
--------------
Not available, Cppcheck Premium is not used
Подробнее здесь: https://stackoverflow.com/questions/787 ... er-upgrade