CXX.BITOP.BOOL_OPERAND
潜在的な論理エラー: ブール式をビット演算子の引数として直接使用してはなりません。代わりに論理演算子の使用を検討してください。
このチェッカーは、ビット演算子でブールオペランドが使用されている場合、欠陥を報告します。
脆弱コード例
コピー
void func(bool var1, bool var2)
{
int var3 = var1 | var2;
int var4 = var1 & var2;
}
上記の例では、ブール変数にビット演算子が適用されているため、3 行目と 4 行目は不適合です。Klocwork は、3 行目と 4 行目で CXX.BITOP.BOOL_OPERAND 欠陥を報告し、「ビット演算子の適用は定数のみに限定する必要があります。」と表示します。
修正コード例
コピー
void func(bool var1, bool var2)
{
int var3 = 1 | 2;
int var4 = 3 & 4;
}
この修正例では、Klocwork はもはや 3 行目と 4 行目で CXX.BITOP.BOOL_OPERAND 欠陥を報告しなくなります。