主要内容

允许左移负操作数 (-allow-negative-operand-in-shift)

允许对负数执行左移位运算

描述

此选项仅影响 Code Prover 分析。

指定验证必须允许对负数执行左移位运算。

设置选项

使用以下方法之一设置选项:

  • Polyspace 平台用户界面(仅限桌面端产品):在您的工程配置中,在静态分析选项卡上,选择运行时错误 > 检查行为节点,然后选择此选项。

  • 命令行和选项文件:请使用 -allow-negative-operand-in-shift 选项。请参阅命令行信息

为何使用此选项

根据 C99 标准(第 6.5.7 节),对负数执行左移位运算的结果是未定义的。遵循该标准,验证会对负数左移位生成红色检查。

如果您的编译器对负数左移位具有明确定义的行为,请设置此选项。请注意,允许负数左移位可能会降低代码的跨编译器可移植性。

设置

打开

验证允许对负数执行移位运算,例如 -2 << 2

关闭(默认值)

如果对负数执行移位运算,则验证会生成错误。

命令行信息

参数:-allow-negative-operand-in-shift
默认值:关闭
示例 (Code Prover):polyspace-code-prover -sources file_name -allow-negative-operand-in-shift
示例 (Code Prover Server):polyspace-code-prover-server -sources file_name -allow-negative-operand-in-shift