C стандартная версия (-c-version)

Задайте стандарт языка C, сопровождаемый в исходном коде

Описание

Задайте стандарт языка C, за которым вы следуете в своем исходном коде.

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

Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Target & Compiler. Смотрите Зависимости для других опций, которые необходимо включить.

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

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

Используйте эту опцию так, чтобы Polyspace® мог позволить функции, характерные для стандартной версии C во время компиляции. Например, если вы компилируете с GCC использование флага -ansi или -std=c90, задаете c90 для этой опции. Если вы не уверены в стандарте языка, задаете defined-by-compiler.

Например, предположите, что вы используете булев тип данных _Bool в вашем коде. Этот тип задан в стандартном C99, но неизвестном в предшествующих стандартах, таких как C90. Если компиляция Polyspace следует стандарту C90, вы видите ошибки компиляции.

Некоторые правила MISRA C® отличаются на основе того, используете ли вы C90 или стандарт C99. Например, MISRA C C:2012 Правило 5.2 требует, чтобы идентификаторы в том же осциллографе и пространстве имен должны быть отличными. Если вы используете стандартные, различные идентификаторы C90, которые имеют тот же первый 31 символ, нарушают это правило. Если вы используете стандарт C99, количество символов увеличиваются до 63.

Настройки

Значение по умолчанию: defined-by-compiler

defined-by-compiler

Анализ использует стандарт на основе вашей спецификации для Compiler (-compiler).

См. Стандарт Языка C/C++, Используемый в Анализе Polyspace.

c90

Анализ использует Стандарт C90 (ISO®/IEC 9899:1990).

c99

Анализ использует Стандарт C99 (ISO/IEC 9899:1999).

c11

Анализ использует Стандарт C11 (ISO/IEC 9899:2011).

Зависимости

  • Эта опция доступна, только если вы устанавливаете Source code language (-lang) на C или C-CPP.

  • Если вы создаете проект или файл опций от вашей системы сборки с помощью команды polyspace-configure или функции polyspaceConfigure, значение этой опции автоматически определяется от системы сборки.

    Если система сборки использует различные стандарты для различных файлов, последующий анализ Polyspace может эмулировать вашу систему сборки и использовать различные стандарты для компиляции тех файлов. Если вы открываете такой проект в пользовательском интерфейсе Polyspace, значение опции показывается defined-by-compiler. Однако вместо одного стандарта, Polyspace использует скрытую опцию -options-for-sources, чтобы сопоставить различные стандарты с различными файлами.

Информация о командной строке

Параметр: -c-version
Значение: defined-by-compiler | c90 | c99 | c11
Значение по умолчанию: defined-by-compiler
Пример (средство поиска ошибки): polyspace-bug-finder -lang c -sources "file1.c,file2.c" -c-version c90
Пример (программа автоматического доказательства кода): polyspace-code-prover -lang c -sources "file1.c,file2.c" -c-version c90
Пример (сервер средства поиска ошибки): polyspace-bug-finder-server -lang c -sources "file1.c,file2.c" -c-version c90
Пример (сервер программы автоматического доказательства кода): polyspace-code-prover-server -lang c -sources "file1.c,file2.c" -c-version c90