在使用 CodePeer 分析 Ada 代码库时,该工具在执行以下操作的行报告“数组索引检查可能失败”:
Param(Param'First) := ....
Run Code Online (Sandbox Code Playgroud)
Param 是传入的out参数 - 它是数组类型。
我的理解是 Ada 在运行时携带数组大小和有效索引范围(为了执行范围检查)......我看不出任何 Ada 数组如何通过访问 index 来违反其范围检查array'First。
我错过了什么?
我正在审查一些 ada 代码,并且在整个项目中一直看到以下代码。
if(variable'Length /= variable'length)
return;
end if
Run Code Online (Sandbox Code Playgroud)
Codepeer 将此标记为总是错误的,这对我来说很有意义,但我的 ada 经验很少。这是否有效,如果有效,在什么情况下它会是真的?
谢谢。