主要内容

MISRA C++:2008 Rule 0-1-2

A project shall not contain infeasible paths

描述

规则定义

A project shall not contain infeasible paths. 1

理由

此规则会标记因非语法原因导致一组语句冗余的情况。例如,if 条件始终为 true 或 false。由于语法原因而不可达的代码由规则 0-1-1 进行标记。

不可达或冗余代码涉及不必要的维护,并且通常可能指示编程错误。

Polyspace 实现

如果您的代码包含死代码和不必要的 if 条件句,则 Polyspace® Bug Finder™ 会报告违反此规则。请参阅死代码无用的 if 条件检查项。

故障排除

如果您预期会出现违规,而 Polyspace 未报告该违规,请参阅诊断为何编码规范违规未按预期显示

示例

全部展开

void func (unsigned int arg) {
 if (arg >= 0U) //Noncompliant
     arg  = 1U;
 if (arg < 0U) //Noncompliant
     arg = 1U;
}

unsigned int 变量为非负值。涉及该变量的两个 if 条件始终为 true 或始终为 false,因此是冗余的。

检查信息

组:与语言无关的问题
类别:必需

版本历史记录

在 R2013b 中推出


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.