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