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