CXX.POSSIBLE_COPY_PASTE.LOGICAL_OP.CMP_SAME_OBJECT

潜在的なコピーペーストエラー: オブジェクトをそれ自体と論理的に比較してはなりません。

このチェッカーは、論理演算子が使用されて同じオブジェクトが比較された場合、欠陥を報告します。

脆弱コード例

コピー
   int f1() {
   bool isAFruit = false;
   const int ORANGE = 8;
   
   if (ORANGE == ORANGE)
   isAFruit = true;
   
   return 0;
   }

上記の例では、int オブジェクト ORANGE がそれ自体と比較されているため、5 行目は不適合です。Klocwork は、5 行目で CXX.POSSIBLE_COPY_PASTE.LOGICAL_OP.CMP_SAME_OBJECT 欠陥を報告し、「潜在的なコピーペーストエラー: オブジェクトをそれ自体と論理的に比較してはなりません。」と表示します。

修正コード例

コピー
   int f1() {
   bool isAFruit = false;
   const int ORANGE = 8;
   
   if (ORANGE == 8) 
   isAFruit = true;
   
   return 0;
   }

この修正例では、Klocwork はもはや 5 行目で CXX.POSSIBLE_COPY_PASTE.LOGICAL_OP.CMP_SAME_OBJECT 欠陥を報告しなくなります。