☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

作为控制条件的逻辑表达式不应恒为真或恒为假

10.1.4 ID_invalidCondition
目录 › next › previous

恒为真或恒为假的表达式无法改变程序的流程,不应作为控制条件,否则会造成逻辑错误。

当控制条件为常量表达式时,本规则特化为 ID_constLogicExpression。

示例:

void foo() {
    int i = 1;
    if (i > 0) {   // Non-compliant, always true
        ....
    } else {
        ....       // Infeasible path
    }
}

例中变量 i 初始化为 1 后在没有被修改过的情况下,仍对其进行判断是没有意义的,else 分枝的代码得不到执行机会。

相关

ID_constLogicExpression

参考

CWE-570 CWE-571 MISRA C 2004 13.7 MISRA C 2012 14.3 MISRA C++ 2008 0-1-2
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.