-boolean-types
)Задайте типы данных, которые кодирующий средство проверки правила должен обработать как эффективно булев
Задайте типы данных, которые средство проверки правила кодирования должно обработать как эффективно булев. Можно задать тип данных, только если вы задали его через оператор 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 |
Значение:
|
Никакое значение по умолчанию |
Пример (средство поиска ошибки):
|
Пример (программа автоматического доказательства кода):
|
Пример (сервер средства поиска ошибки):
|
Пример (сервер программы автоматического доказательства кода):
|