Использование cppcheck с явным набором макросов
cppcheck
создает набор комбинаций всех макросов, которые влияют на условную компиляцию всех заголовков или источников по умолчанию, а затем фильтрует их до набора из примерно 12 комбинаций, если только --force
используется.
У меня есть большая кодовая база с большим количеством макросов переносимости. Меня интересует только то, что я тестирую, для относительно небольшого подмножества, поэтому я использовал --config-exclude=include/port/
отфильтровать все заголовки портов в моем проекте.
Беда в том, что тогда кажется, что cppcheck вообще не тестирует никаких комбинаций - до такой степени, что он не может жаловаться на явно фиктивный код, такой как
int *foo = NULL;
*foo = 1;
В любом случае, мне бы хотелось протестировать некоторые комбинации макросов, но не весь неуправляемый список.
Есть ли вменяемый способ получить cppcheck
принять список макросов, чтобы попробовать комбинации? Или я застряну с созданием явных списков -U и -D, чтобы передать его в нескольких вызовах самостоятельно?
Я заметил, что ему нравится пробовать такие вещи, как бег с -DMSC_VER
и без этого. Если я явно установить -DMSC_VER
Затем он находит посаженную проблему, которая находится за пределами любого #ifdef MSC_VER
охранник; но если я установлю -UMSC_VER
тогда это не в состоянии найти проблему и, кажется, проверяет нулевые комбинации.
Это как если бы явный -Umacro
не выполняет тот же путь, что и путь cppcheck, если ему разрешено попробовать как определенные, так и не определенные пути...