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;
}
在以上示例中,第 5 行不符合要求,因为 int 对象 ORANGE 是与自身进行对比。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 缺陷。