использование cppcheck с явным набором макросов - PullRequest
0 голосов
/ 05 февраля 2019

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

...