Я обнаружил, что --suppress=unmatchedSuppression
только подавляет непревзойденные типы подавления в параметрах cppcheck, но не является непревзойденным встроенным подавлением.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
(не ожидается)