AUTOSAR C++14 Rule A0-1-1
A project shall not contain instances of non-volatile variables being given values that are not subsequently used
描述
规则定义
A project shall not contain instances of non-volatile variables being given values that are not subsequently used.
理由
如果您为某个变量赋了值,但后面并不会用到该变量值,则该赋值可能会导致编程错误。您可能本打算使用该变量但没有使用,或者您可能错误地使用了其他变量。
Polyspace 实现
向作用域为文件的局部静态变量赋值后,如果所赋值没有被使用过,则此规则检查项会报告赋值违规。(此检查项会将没有 extern
设定符且符合 const
条件的全局变量视为作用域为文件的静态变量。)
此检查项会报告以下方面的违规:
初始化(如果未使用已初始化的变量)。
赋值(如果未使用所赋值)。
例如,您为某个变量赋了一个值,但在下次读取该变量之前,又赋了另一个值。在这种情况下,此检查项会标记第一个冗余赋值。唯一例外的情况是在变量初始化时赋值,然后值被覆盖。
如果先前迭代中的赋值不是冗余的,此检查项不会报告在循环的最后一次迭代中的赋值违规。例如,函数 func()
中循环的最后一次迭代中的赋值 prevIter = i
冗余,但先前迭代中的赋值不是冗余的。
void doSomething(int); void func() { int prevIter=-1, uBound=100; for(int i=0; i < uBound; i++) { doSomething(prevIter); prevIter = i; } }
故障排除
如果您预计存在违规,而 Polyspace® 未报告该违规,请参阅Diagnose Why Coding Standard Violations Do Not Appear as Expected。
示例
检查信息
组:与语言无关的问题 |
类别:必需、自动 |