Coverity 会在嵌入式 C 中将全局变量视为 0 初始化吗?
Will Coverity treat global variables as 0-initialized in embedded C?
在嵌入式 C 代码中,我们不会显式地将全局变量初始化为 0,因为引导代码会在系统引导时这样做。
我的代码中有两个全局变量,例如A和B。我的代码将承诺A将不再大于B,只要它们具有零初始值。
但是当我检查 Coverity 报告的问题时,它假设 A 可能比 B 大。似乎 Coverity 并不认为它们都有初始值 0.
从 Synopsys 的回复来看,Coverity 不跟踪全局变量。它从上下文推断出当变量值未知时可能存在缺陷。
Here 是一篇参考文章。
在嵌入式 C 代码中,我们不会显式地将全局变量初始化为 0,因为引导代码会在系统引导时这样做。
我的代码中有两个全局变量,例如A和B。我的代码将承诺A将不再大于B,只要它们具有零初始值。
但是当我检查 Coverity 报告的问题时,它假设 A 可能比 B 大。似乎 Coverity 并不认为它们都有初始值 0.
从 Synopsys 的回复来看,Coverity 不跟踪全局变量。它从上下文推断出当变量值未知时可能存在缺陷。
Here 是一篇参考文章。