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 欠陥を報告しなくなります。