Я обнаружил, что --suppress=unmatchedSuppression
подавляет только несопоставленные типы подавления в параметрах cppcheck, но НЕ несовпадающие встроенные подавления.
Это ожидаемое поведение?
test.c
Строка 4 неверна. Следует предупредить
arrayIndexOutOfBounds
В 7-й строке все в порядке. НЕ следует предупреждать
arrayIndexOutOfBounds
У меня есть встроенный cppcheck-suppress
для обеих строк.
1 void f() {
2 char arr[5];
3 // cppcheck-suppress arrayIndexOutOfBounds
4 arr[10] = 0;
5
6 // cppcheck-suppress arrayIndexOutOfBounds
7 const char ok[] = "this line is ok";
8 }
Ситуация 1
Подавить cstyleCast
, который НЕ существует в коде.
cppcheck --inline-suppr --force --enable=all
--xml-version=2 --suppress=cstyleCast test.c
2>cppcheckresults.xml
Я получаю предупреждение (среди прочих неуместных предупреждений)
unmatchedSuppression: arrayIndexOutOfBounds
черезtest.c
line 7
(как и ожидалось)unmatchedSuppression: cstyleCast
в*
line 0
(как и ожидалось)
Ситуация 2
То же, что и в ситуации 1, но с дополнительной опцией --suppress=unmatchedSuppression
cppcheck --inline-suppr --force --enable=all
--xml-version=2 --suppress=cstyleCast --suppress=unmatchedSuppressiontest.c
2>cppcheckresults.xml
Я ожидаю, что оба предыдущих предупреждения unmatchedSuppression
исчезнут. Но я все равно получаю
unmatchedSuppression
черезtest.c
line 7
(НЕ ожидается)