【发布时间】:2021-10-12 11:08:43
【问题描述】:
我已经开始使用一种工具来检查是否符合 MISRA-C 2012。该工具是 Helix QAC。在配置期间,它要求选择一个编译器。我的理解是 MISRA-C(以及一般的编码规则)没有链接到编译器工具链,因为它们的目标之一是可移植性。此外,MISRAC 的一条规则是不使用语言扩展(显然这条规则可能被禁用或可能有例外)。 Helix 文档或支持对此相当含糊(仍在尝试从他们那里获取更多信息),只是提到需要知道整数类型长度或标准包含的路径。但是规则分析应该独立于int的大小,并且标准包含的接口是标准的,所以应该不需要实际的文件。
MISRA-C 规则检查器和编译器之间的依赖关系是什么?
【问题讨论】:
-
我觉得你问的不是很清楚。
-
“你怎么看?”太宽泛了。有什么问题?
-
MISRA 检查器和编译器之间有什么依赖关系是一个相当具体的问题,如果你只是放弃“你怎么看?”最后。
-
鉴于您的问题是“为什么这个 MISRA-C 检查器工具需要知道我使用哪个编译器?”,我对您的问题是“您为什么关心该工具想知道哪个编译器?你用?”。除非您只是出于好奇而提出这个问题(这是合法的),但恐怕您的问题可能只有该工具的开发人员才能完全回答。
-
@GuillaumePetitjean MISRA-C 本身(5.3.2)还要求您记录如何配置静态分析器,您将其设置为忽略的内容以及原因等。具有讽刺意味的是,我现在看到了MISRA 指南中的此文本与我在下面的答案中所做的基本布尔类型的示例完全相同:)