Дефекты надлежащей практики

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

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

  • Жестко закодированные константы, такой как 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* указатель, указывающий на объект
File does not compileОшибка компиляции файла
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Гибкий массив представителя заданный с нулем или одним размером
Line with more than one statementНесколько операторы в линии
Macro terminated with a semicolonОпределение макроса заканчивается точкой с запятой
Macro with multiple statementsМакрос состоит из нескольких операторов с запятой, заключенных в скобки или нет
Missing break of switch caseБез комментариев в конце варианта switch без оператора break
Missing overload of allocation or deallocation functionПерегружена только одна функция в паре функций выделения-изъятия
Missing reset of a freed pointerУказатель на free не сопровождается оператором сброса для удаления оставшихся данных
Possibly inappropriate data type for switch expressionswitch выражение имеет тип данных, отличный от char, short, int или enum
Semicolon on same line as if, for or while statementТочка с запятой на той же линии приводит к пустому телу if, for или while оператор
Unmodified variable not const-qualifiedПеременная не const-квалифицированное, но значение переменных, не измененное в течение жизни
Unused parameterПрототип функции имеет параметры, не считанные или записанные в тело функции
Use of a forbidden functionФункция появляется в черном списке запрещенных функций
Use of setjmp/longjmpsetjmp и longjmp причина отклонения от нормального потока управления
Useless expressions in sizeof operandsizeof операнд содержит выражение, которое не оценивается

Темы

Группы дефектов Bug Finder

Проверки дефектов Bug Finder классифицируются в такие группы, как поток данных, параллелизм, численный и так далее.