-show-similar-overflows
以绕回模式显示所有溢出
语法
-show-similar-overflows
描述
-show-similar-overflows
会使所有溢出以绕回模式显示,即使它们的根本原因相同也是如此。
如果您为有符号整数的溢出模式 (-signed-integer-overflows)
或无符号整数的溢出模式 (-unsigned-integer-overflows)
选项选择了 warn-with-wrap-around
,则发生溢出的值将被绕回。例如,INT_MAX + 1
将绕回为 INT_MIN
。具有溢出值的路径将继续延伸到具有绕回值的溢出之外,并可能在几行之后导致类似的溢出。默认情况下,Code Prover 会检测由同一根本原因导致的溢出,并且仅显示类似溢出中的第一个。如果您修复此溢出,则后续的溢出也会得到修复。如果您希望以绕回模式查看所有溢出,请使用 -show-similar-overflows
选项。
在用户界面(仅限 Polyspace® 桌面端产品)中,在配置窗格的其他字段中输入此选项。请参阅其他
。
示例
在以下示例中,var
的值未知,极端情形可能会导致 *copy1 = var * 2
运算中发生溢出。相同的极端情形还会导致下一运算中发生溢出。Code Prover 仅针对第一个运算显示橙色上溢检查结果。
int input(); void getEven(int* copy1, int* copy2) { int var; var = input(); *copy1 = var * 2; *copy2 = var * 2; }
如果您使用 -show-similar-overflows
选项,则 Code Prover 针对两个运算都会显示橙色上溢检查结果。
int input(); void getEven(int* copy1, int* copy2) { int var; var = input(); *copy1 = var * 2; *copy2 = var * 2; }
版本历史记录
在 R2020b 中推出