Использование 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, если ему разрешено попробовать как определенные, так и не определенные пути...

0 ответов

Другие вопросы по тегам