exponenta event banner

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

Укажите стандарт языка 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 Rule 5.2 требует, чтобы идентификаторы в одном объеме и пространстве имен были различны. Если используется стандарт C90, то это правило нарушается различными идентификаторами, имеющими один и тот же первый 31 символ. При использовании стандарта C99 количество символов увеличивается до 63.

Настройки

По умолчанию: defined-by-compiler

defined-by-compiler

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

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

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