-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 |
Пример (Code Prover):
Polyspace Code Prover -lang c -sources |
Пример (Bug Finder Server):
polyspace-bug-finder-server -lang c -sources |
Пример (Код Prover Server):
Полипространство -code-prover-server -lang c -sources |