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 = var1 || var2;
int var4 = var1 && var2;
}
この修正例では、Klocwork はもはや 3 行目と 4 行目で CXX.BITOP.BOOL_OPERAND 欠陥を報告しなくなります。