主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

默认启用的 Polyspace Bug Finder 缺陷检查项

当您启动 Bug Finder 分析时,会默认启用这些检查项。要查看在分析生成代码时默认启用的检查项列表,请参阅默认为生成的代码启用 Polyspace Bug Finder 缺陷检查项

缺陷命令行名称
浮点操作数被吸收FLOAT_ABSORPTION
访问具有临时存在时间的对象TEMP_OBJECT_ACCESS
内存重新分配后对齐发生改变ALIGNMENT_CHANGE
从文件流中交替执行输入和输出运算间未执行刷新和定位调用IO_INTERLEAVING
数组访问越界OUT_BOUND_ARRAY
断言ASSERT
原子加载和存储序列是非原子的ATOMIC_VAR_SEQUENCE_NOT_ATOMIC
在表达式中访问原子变量两次ATOMIC_VAR_ACCESS_TWICE
未调用基类赋值运算符MISSING_BASE_ASSIGN_OP_CALL
基类析构函数不是虚函数DTOR_NOT_VIRTUAL
字符串格式设定符不正确导致缓冲区溢出STR_FORMAT_BUFFER_OVERFLOW
通过非原型函数指针进行调用UNPROTOTYPED_FUNC_CALL
字符值被吸收转化为 EOFCHAR_EOF_CONFUSED
关闭之前已关闭的资源DOUBLE_RESOURCE_CLOSE
转换或删除不完整的类指针INCOMPLETE_CLASS_PTR
初始化列表中未调用拷贝构造函数MISSING_COPY_CTOR_CALL
修改源操作数的复制运算COPY_MODIFYING_SOURCE
数据争用DATA_RACE
相邻位域的数据争用DATA_RACE_BIT_FIELDS
对标准库函数调用的数据争用DATA_RACE_STD_LIB
死代码DEAD_CODE
死锁DEADLOCK
释放之前已释放的指针DOUBLE_DEALLOCATION
声明不匹配DECL_MISMATCH
字符串操作中目标缓冲区上溢STRLIB_BUFFER_OVERFLOW
字符串操作中目标缓冲区下溢STRLIB_BUFFER_UNDERFLOW
双锁DOUBLE_LOCK
双解锁DOUBLE_UNLOCK
环境指针因前面的运算而失效INVALID_ENV_POINTER
errno 未重置MISSING_ERRNO_RESET
按值捕获异常EXCP_CAUGHT_BY_VALUE
异常处理程序被上一处理程序隐藏EXCP_HANDLER_HIDDEN
浮点数转换溢出FLOAT_CONV_OVFL
浮点数除以零FLOAT_ZERO_DIV
格式字符串设定符和参量不匹配STRING_FORMAT
不正确的数组初始化IMPROPER_ARRAY_INIT
类型不兼容导致无法覆盖VIRTUAL_FUNC_HIDING
传递给 va_arg 的数据类型不正确VA_ARG_INCORRECT_TYPE
不正确的指针缩放BAD_PTR_SCALING
向 va_start 传递不正确的类型数据VA_START_INCORRECT_TYPE
在 C++ 中不正确地使用 offsetofOFFSETOF_MISUSE
不正确使用 va_startVA_START_MISUSE
不正确的值转发INCORRECT_VALUE_FORWARDING
无限循环INFINITE_LOOP
未遵守内联约束INLINE_CONSTRAINT_NOT_RESPECTED
整数转换溢出INT_CONV_OVFL
整数除以零INT_ZERO_DIV
无效的内存组织假设INVALID_MEMORY_ASSUMPTION
无效的指针删除BAD_DELETE
无效的指针释放BAD_FREE
无效的 = 运算符使用BAD_EQUAL_USE
无效的 == 运算符使用BAD_EQUAL_EQUAL_USE
无效的标准库浮点例程使用FLOAT_STD_LIB
无效的标准库整数例程使用INT_STD_LIB
无效的标准库内存例程使用MEM_STD_LIB
无效的标准库例程使用OTHER_STD_LIB
无效的标准库字符串例程使用STR_STD_LIB
无效的 va_list 参量INVALID_VA_LIST_ARG
Lambda 用作 typeid 操作数LAMBDA_TYPE_MISUSE
比较填充数据内存MEMCMP_PADDING_DATA
比较字符串内存MEMCMP_STRINGS
缺失锁BAD_UNLOCK
字符串数组中缺失 nullMISSING_NULL_CHAR
缺失 return 语句MISSING_RETURN
缺失解锁BAD_LOCK
误用 FILE 对象FILE_OBJECT_MISUSE
误用 errnoERRNO_MISUSE
在信号处理程序中误用 errnoSIG_HANDLER_ERRNO_MISUSE
误用符号扩展字符值CHARACTER_MISUSE
误用具有灵活数组成员的结构体FLEXIBLE_ARRAY_MEMBER_STRUCT_MISUSE
对 const 对象执行移动运算MOVE_CONST_OBJECT
Noexcept 函数因异常而退出NOEXCEPT_FUNCTION_THROWS
未初始化的指针NON_INIT_PTR
未初始化的变量NON_INIT_VAR
空指针NULL_PTR
对象切片OBJECT_SLICING
打开之前已打开的资源DOUBLE_RESOURCE_OPEN
运算符 new 未重载可能过度对齐的类MISSING_OVERLOAD_NEW_FOR_ALIGNED_OBJ
部分覆盖重载的虚函数PARTIAL_OVERRIDE
未完整访问的数组PARTIALLY_ACCESSED_ARRAY
指针访问越界OUT_BOUND_PTR
堆栈变量的指针或引用超出作用域LOCAL_ADDR_ESCAPE
可能的 sizeof 误用SIZEOF_MISUSE
运算符优先级规则导致可能的非预期表达式计算OPERATOR_PRECEDENCE
预定义宏用作对象MACRO_USED_AS_OBJECT
在宏参量中使用预处理器指令PRE_DIRECTIVE_MACRO_ARG
资源泄漏RESOURCE_LEAK
从计算异常信号处理程序返回结果SIG_HANDLER_COMP_EXCP_RETURN
未在运算符中测试自赋值MISSING_SELF_ASSIGN_TEST
在信号处理程序内访问共享数据SIG_HANDLER_SHARED_OBJECT
表达式的副作用被忽略SIDE_EFFECT_IGNORED
符号变化整数转换溢出SIGN_CHANGE
从信号处理程序内部调用 signalSIG_HANDLER_CALLING_SIGNAL
用不正确的参量调用标准函数STD_FUNC_ARG_MISMATCH
可能带非预期副作用的流参量STREAM_WITH_SIDE_EFFECT
在指向不同数组的指针之间做减法或进行比较PTR_TO_DIFF_ARRAY
Throw 参量出现意外异常THROW_ARGUMENT_EXPRESSION_THROWS
va_arg 调用次数相对当前参量列表太多TOO_MANY_VA_ARG_CALLS
Typedef 不匹配TYPEDEF_MISMATCH
通过标记串联创建通用字符名称PRE_UCNAME_JOIN_TOKENS
头文件中未命名的命名空间UNNAMED_NAMESPACE_IN_HEADER
不可达代码UNREACHABLE
不可靠的函数指针转换FUNC_CAST
不可靠的指针转换PTR_CAST
无符号整数转换溢出UINT_CONV_OVFL
使用自动变量作为 putenv 族函数参量PUTENV_AUTO_VAR
使用之前已关闭的资源CLOSED_RESOURCE_USE
使用之前已释放的指针FREED_PTR
无用的 if 条件USELESS_IF
大小不为正数的可变长度数组NON_POSITIVE_VLA_SIZE
变量遮蔽VAR_SHADOWING
写入后未被读取USELESS_WRITE
写入 const 限定对象CONSTANT_OBJECT_WRITE
写入只读资源READ_ONLY_RESOURCE_WRITE
在 sizeof 中使用错误的类型PTR_SIZEOF_MISMATCH

要启用其他检查项和编码规则,请配置检查项选择。请参阅Prepare Checkers Configuration for Polyspace Bug Finder Analysis在 Polyspace as You Code 中设置检查项

另请参阅

主题