MISRA C:2012 Dir 4.11
应检查传递给库函数的值的有效性
描述
指令定义
应检查传递给库函数的值的有效性 1 .
理由
许多标准 C 函数不会检查传递给它们的参数的有效性。即使编译器执行了检查,也无法保证这些检查是充分的。例如,您不应将负数传递给 sqrt
或 log
。
Polyspace 实现
Polyspace® 在检测到以下任何问题时,将报告违反该指令的情况:
无效的标准库整数例程使用
。Polyspace 不报告对某些整数库例程(如isalnum
、isalpha
或tolower
)的无效使用违反了此指令。无效的标准库内存例程使用
。Polyspace 不报告对某些内存库例程(如memchr
、memcmp
或memset
)的无效使用违反了此指令。无效的标准库字符串例程使用
。Polyspace 不报告对某些字符串库例程(如strncat
、strncpy
或strcpy
)的无效使用违反了此指令。从
math.h
使用超出界限[-π,π]
的输入调用三角函数。
提示
要批量申述与同一库函数相关的所有结果,请使用结果列表窗格中的详细信息列。点击列标题,以便将具有相同条目的所有结果分组在一起。在按住 Shift
键的同时依次选择第一个结果和最后一个结果。为其中一个结果指定一个状态。如果您未看到详细信息列,请右键点击任何其他列标题并启用此列。
故障排除
如果您预期会出现违规,但未看到该违规,请参阅诊断为何编码规范违规未按预期显示。
检查信息
组:代码设计 |
类别:必需 |
AGC 类别:必需 |
版本历史记录
在 R2014b 中推出1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.