Хорошие дефекты практики

Дефекты, которые позволяют вам наблюдать хорошие методы кодирования, такие как обнаружение трудно закодированного размера буфера памяти или неиспользованных параметров функции

Эти дефекты позволяют вам наблюдать хорошие методы кодирования. Дефекты собой не могут вызвать катастрофический отказ, но они иногда подсвечивают более серьезные логические ошибки в вашем коде. Дефекты также делают ваш код уязвимым для нападений и трудно обеспечить. Дефекты включают:

  • Трудно закодированные константы, такие как buffer size и контур цикла

  • Неиспользованные параметры функции

Результаты Polyspace

развернуть все

Ambiguous declaration syntaxСинтаксис объявления может быть интерпретирован как объектное объявление или часть объявления функции
Bitwise and arithmetic operation on the same dataОператор со смешанными битовыми и арифметическими операциями
C++ reference to const-qualified type with subsequent modificationСсылка на const- квалифицированный тип впоследствии изменяется
C++ reference type qualified with const or volatileСсылочный тип объявляется с избыточным const или volatile спецификатор
Delete of void pointerdelete работает с void* указатель, указывающий на объект
Hard-coded buffer sizeРазмер буфера памяти является численным значением вместо символьной константы
Hard-coded loop boundaryКонтур цикла является численным значением вместо символьной константы
Hard-coded object size used to manipulate memoryМанипуляция с памятью с трудно закодированным размером вместо sizeof
Incorrectly indented statementДобавление отступа оператора неправильно заставляет его появиться как часть блока
Incorrect syntax of flexible array member sizeЧлен массива с переменными границами задал с нулевым размером или один
Large pass-by-value argumentБольшой аргумент передается значением между функциями
Line with more than one statementНесколько операторов на линии
Macro terminated with a semicolonМакроопределение заканчивается точкой с запятой
Macro with multiple statementsМакрос состоит из нескольких отключенных точкой с запятой операторов, заключенных в фигурные скобки или нет
Missing break of switch caseНикакие комментарии в конце случая переключателя без оператора завершения
Missing overload of allocation or deallocation functionТолько одна функция в паре функции освобождения выделения перегружается
Missing reset of a freed pointerУказатель free не сопровождаемый оператором сброса, чтобы очистить оставшиеся данные
Possibly inappropriate data type for switch expressionswitch выражение имеет тип данных кроме char, короткого, международного или перечислимого
Semicolon on same line as if, for or while statementТочка с запятой на той же линии приводит к пустому телу ifдля или while оператор
Unmodified variable not const-qualifiedПеременная не const- квалифицированное но значение переменных, не измененное в течение времени жизни
Unused parameterПрототип функции имеет параметры не чтение или написанный в теле функции
Use of a forbidden functionФункция появляется в черном списке запрещенных функций
Use of setjmp/longjmpsetjmp и longjmp вызовите отклонение от нормального потока управления
Useless expressions in sizeof operandsizeof операнд содержит выражение, которое не выполнено

Темы

Группы дефекта средства поиска ошибки

Средства проверки дефекта Средства поиска Ошибки классифицируются в группы, такие как поток данных, параллелизм, числовой, и так далее.