工具/软件:TI C/C++编译器
香榭丽舍
我向我们的客户提出这一问题。
用户的环境是:
CCS:8.3.0.00009
编译器:TI v 18.1.4.LTS
奇怪的是、当他们在 C28x 和 CLA 中编译相同的代码时、MISRA-C 2004会产生非常不同的结果。
在 CLA 上、它们对代码有更多的警告。
这些警告基本上是规则10.1和12.2、如下所示:
#1393-D (MISRA-C:2004 10.1/R)如果表达式复杂、整数类型表达式的值不应隐式转换为不同的基础类型
#1393-D (MISRA-C:2004 10.1/R)如果表达式复杂、整数类型表达式的值不应隐式转换为不同的基础类型
#1393-D (MISRA-C:2004 10.1/R)如果表达式复杂、整数类型表达式的值不应隐式转换为不同的基础类型
#1487-D (MISRA-C:2004 12.2/R)根据标准允许的任何评估顺序、表达式的值都应相同
#1393-D (MISRA-C:2004 10.1/R)整数类型表达式的值如果不转换为相同符号的更宽整数类型、则不应隐式转换为不同的基础类型
#1393-D (MISRA-C:2004 10.1/R)整数类型表达式的值如果不转换为相同符号的更宽整数类型、则不应隐式转换为不同的基础类型
#1393-D (MISRA-C:2004 10.1/R)整数类型表达式的值如果不转换为相同符号的更宽整数类型、则不应隐式转换为不同的基础类型
#1393-D (MISRA-C:2004 10.1/R)整数类型表达式的值如果不转换为相同符号的更宽整数类型、则不应隐式转换为不同的基础类型
#1393-D (MISRA-C:2004 10.1/R)整数类型表达式的值如果不转换为相同符号的更宽整数类型、则不应隐式转换为不同的基础类型
我们的问题:
1) 1)为什么上述 代码在 C28x (右侧)上传递、但在 CLA (左侧)上收到许多警告?
2) 2)当我们尝试实施 MISRA-C 2004检查时、CLA 是否有任何特殊限制?
你有什么意见吗?
黄维恩
