-boolean-types
)Задайте типы данных, которые кодирующий средство проверки правила должен обработать как эффективно булев
Задайте типы данных, которые средство проверки правила кодирования должно обработать как эффективно булев. Можно задать тип данных как эффективно булев, только если вы задали его через enum
или typedef
оператор в вашем исходном коде.
Пользовательский интерфейс (только десктопные решения): В вашей настройке проекта опция находится на узле Coding Standards & Code Metrics. Смотрите Зависимости для других опций, которые необходимо также включить.
Командная строка и файл опций: Используйте опцию -boolean-types
. Смотрите информацию о командной строке.
Используйте эту опцию, чтобы позволить Polyspace® проверять следующие правила кодирования:
MISRA C®: 2004 и MISRA® AC AGC
Управляйте номером | Управляйте оператором |
---|---|
12.6 | Операнды логических операторов, && , || , и ! , должно быть эффективно булевым. Выражения, которые являются эффективно булевыми, не должны использоваться в качестве операндов к другим операторам. |
13.2 | Тесты значения против нуля должны быть сделаны явными, если операнд не является эффективно булевым. |
15.4 | switch выражение не должно представлять значение, которое является эффективно булевым. |
MISRA C: 2012
Управляйте номером | Управляйте оператором |
---|---|
10.1 | Операнды не должны иметь несоответствующего существенного типа |
10.3 | Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типа |
10.5 | Значение выражения не должно быть брошено к несоответствующему существенному типу |
14.4 | Выражение управления оператора if и выражение управления оператора цикла должны иметь по существу булев тип. |
16.7 | Выражение переключателя не должно иметь по существу булева типа. |
Например, в следующем коде, если вы не задаете myBool
как эффективно булевская переменная, Polyspace обнаруживает нарушение MISRA C: 2 012 правил 14.4.
typedef int myBool; void func1(void); void func2(void); void func(myBool flag) { if(flag) func1(); else func2(); }
Никакое значение по умолчанию
Щелкните, чтобы добавить поле. Введите имя типа, которое вы хотите, чтобы Polyspace обработал как булевская переменная.
Эта опция включена, только если вы выбираете одну из этих опций:
Параметр: -boolean-types |
Значение:
|
Никакое значение по умолчанию |
Пример (Bug Finder): Polyspace Bug Finder - источники |
Пример (Программа автоматического доказательства Кода):
Polyspace Code Prover - источники |
Пример (Сервер Bug Finder):
сервер средства поиска ошибки полипробела - источники |
Пример (Сервер Программы автоматического доказательства Кода):
сервер программы автоматического доказательства полипробела кода - источники |