メインコンテンツ

左シフトで負のオペランドを許可 (-allow-negative-operand-in-shift)

負の数値での左シフト演算の許可

説明

このオプションは Code Prover 解析のみに影響します。

負の数値での左シフト演算が検証で必ず許可されるよう指定します。

オプションの設定

以下のいずれかの方法を使用してオプションを設定します。

  • Polyspace® ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [チェック動作] ノードを選択してから、このオプションを選択します。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [実行時エラー][チェック動作] ノードを選択してから、このオプションを選択します。

  • コマンド ラインとオプション ファイル: オプション -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