-U
)Не определите макросы в предварительно обработанном коде
Не определите макросы в предварительно обработанном коде.
Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Macros.
Командная строка и файл опций: Используйте опцию -U
. См. «Информация о командной строке».
Используйте эту опцию, чтобы эмулировать поведение компилятора. Например, если ваш компилятор рассматривает макрос _WIN32
как не определено, когда вы создаете свой код, он выполняет код в #ifndef _WIN32
оператор. Если Polyspace® считает, что макрос задан, необходимо явно не определять макрос.
Некоторые настройки для Compiler (-compiler)
включить определенные макросы по умолчанию. Эта опция позволяет вам не определять макросы.
Как правило, вы распознаете из ошибок компиляции, что определенный макрос должен быть неопределенным. Например, следующий код не компилируется, если макрос _WIN32
задан.
#ifndef _WIN32 int env_var; #endif void set() { env_var=1; }
env_var
не определено. Однако определение env_var
находится в #ifndef _WIN32
оператор. Основной причиной ошибки является то, что макрос _WIN32
задан. Вы должны не определить _WIN32
.По умолчанию нет
Используя кнопку, добавьте новую строку для каждого неопределенного макроса.
Спецификация компилятора определяет значения многих макросов, специфичных для компилятора. Если вы хотите знать, как Polyspace задает определенный макрос, используйте опцию -dump-preprocessing-info
.
Чтобы переопределить определение макроса, исходящее из спецификации компилятора, используйте опцию Preprocessor definitions (-D)
.
Чтобы не определить макрос, используйте эту опцию.
Вы можете задать только один флаг с каждым -U
опция. Однако можно задать опцию несколько раз.
Параметр: -U |
По умолчанию нет |
Значение: macro |
Пример (Bug Finder):
polyspace-bug-finder -U HAVE_MYLIB -U USE_COM1 |
Пример (Code Prover): polyspace-code-prover -U HAVE_MYLIB -U USE_COM1 |
Пример (Bug Finder Server): polyspace-bug-finder-server -U HAVE_MYLIB -U USE_COM1 |
Пример (Code Prover Server):
polyspace-code-prover-server -U HAVE_MYLIB -U USE_COM1 |