C standard version (-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 Standard (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 function, значение этой опции автоматически определяется из вашей системы сборки.

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

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

Параметр: -c-version
Значение: defined-by-compiler | c90 | c99 | c11
По умолчанию: defined-by-compiler
Пример (Bug Finder): Polyspace Bug Finder -lang c -sources "file1.c,file2.c" -c-версия c90
Пример (Code Prover): Polyspace Code Prover -lang c -sources "file1.c,file2.c" -c-версия c90
Пример (Bug Finder Server): polyspace-bug-finder-server -lang c -sources "file1.c,file2.c" -c-версия c90
Пример (Код Prover Server): Полипространство -code-prover-server -lang c -sources "file1.c,file2.c" -c-версия c90