Disabled preprocessor definitions (-U)

Не задайте макросы в предварительно обработанном коде

Описание

Не задайте макросы в предварительно обработанном коде.

Установите опцию

Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Macros.

Командная строка и файл опций: Используйте опцию -U. Смотрите информацию о командной строке.

Почему использование эта опция

Используйте эту опцию, чтобы эмулировать ваше поведение компилятора. Например, если ваш компилятор рассматривает макро-_WIN32 как неопределенный, когда вы создаете свой код, он выполняет код в #ifndef _WIN32 оператор. Если Polyspace® полагает, что макрос, как задано, необходимо явным образом не задать макрос.

Некоторые настройки для Compiler (-compiler) включите определенные макросы по умолчанию. Эта опция позволяет вам, не задают макросы.

Как правило, вы распознаете от ошибок компиляции, что определенный макрос должен быть не определен. Например, следующий код не компилирует если макро-_WIN32 задан.

#ifndef _WIN32
  int env_var;
#endif

void set() {
  env_var=1;
}
Сообщение об ошибке утверждает тот env_var isundefined. Однако определение 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
Пример (программа автоматического доказательства кода): polyspace-code-prover -U HAVE_MYLIB -U USE_COM1
Пример (сервер Bug Finder): polyspace-bug-finder-server -U HAVE_MYLIB -U USE_COM1
Пример (сервер программы автоматического доказательства кода): polyspace-code-prover-server -U HAVE_MYLIB -U USE_COM1