问题标签 [misra]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - #include *not* 后面可以跟吗还是“文件名”?
从MISRA-C 2004开始:
19.3 (req): '#include' 指令后应跟 a
<filename>
或"filename"
序列。
什么是替代方案?后面可以跟or#include
以外的东西吗?<filename>
"filename"
编辑:他们指的是#define
d 预处理器变量吗?
c++ - MISRA-C++:2008[8-4-3] : 在函数的所有退出路径中返回
在测试我的代码(静态分析)以查看我是否尊重 misra c++ 2008 时,我收到以下错误
函数不会在所有路径上都返回值。
该功能看起来像
我真的需要抛出一个异常,因为根据错误调用者应该做一些事情。可能的错误列表可能很大,并且不仅仅是此代码示例中不存在该值。
我该如何管理它?我认为在这种情况下,我使用的工具不应将其视为对 misra 的不合规。
感谢您的意见。
罗尼。
c - 宏定义中的 Misra C 错误
这段代码报告了三个 misrac 错误:
- 不恰当的宏展开
- 类函数宏定义
- 不带括号的宏参数
原始代码是:
我试图改变它以消除错误
但我仍然收到前两个错误。需要做些什么来消除这些 Misra C 错误。
c++ - 警告 634 和警告 613:MISRA
我有两种情况我无法解决这些警告.. 这些是重复警告
我试图检查 NULL 条件,但仍然存在警告。
部分代码:
我怎样才能避免这两个警告???
c++ - 警告 639:二进制操作中类型“uint64”的强类型不匹配
我在不同的文件中收到这些警告。我试图解决它,但对所有人(所有 6 种情况)仍然有相同的警告。
你能告诉我这样做的原因吗?
c - MISRA 9.2 初始化浮点数和无符号数组
在以下几行中,我收到了来自 Parasoft C/C++ 测试静态分析工具和 IAR Embedded Workbench MISRA 检查器报告的不同问题:
Parasoft 静态分析 说:
IAR Embedded Workbench 对上述语句没有任何问题(并且其 MISRA 检查器已打开)。
我可以使变量“array_b”的消息消失:
但是,同样的技巧不适用于“array_a”:
现在 IAR Embedded Workbench MISRA 检查器正在抱怨,因为有符号整数常量 0 被分配给无符号整数:
Parasoft 静态分析未显示上述第 4 行的任何问题。
我相信这归结为 MISRA 规则 9.2 对“零”的解释:
例外
哪个检查器是正确的?
c++ - 如何解决此 MISRA 警告:C++
这是如下代码:
警告:“必需的规则 8-4-4,使用的函数标识符没有 '&' 或带括号的参数列表”
我无法解决这个问题,请提出解决方案。
c++ - 最高操作,“常数”,没有副作用 [MISRA 2004 Rule 14.2]
嗨,这是我的代码的一部分,并为此逻辑代码收到一些 MISRA 警告:
警告:(在第 1 行和第 2 行)
你能指导我解决这个问题吗...
c - 如何使 (1 << 9) 通过 MISRA?
我们正在使用启用 MISRA C 2004 检查器的 Parasoft 静态分析。
该软件是一个嵌入式系统。我们喜欢将常量描述如下:
这将表明寄存器中的第 9 位应为 1 以打开电机。
该表达式未通过 MISRA,因此我们对其进行了更改:
这些更改转换为无符号整数常量,因为移位最好使用无符号整数完成。
语句 2 中的表达式仍然失败,因为需要检查右手运算符 (9U)。根据 MISRA,如果右手运算符大于左手运算符的底层类型的位宽,就会出现问题。
问题的根源在于 1U 的底层类型为unsigned char
8 位。
我们写入的寄存器是 16 位的,所以理论上没有问题。
如何更改 [2] 中的表达式以使其通过 MISRA C 2004,而不是使用强制转换?
我在 8/32 位模式下使用带有 ARM7TDMI 处理器的 IAR Embedded Workbench。
编辑 1:示例代码。
错误文本:用作移位运算符右手操作数的常数应受到限制。
来自 Parasoft 提供的 MISRA 规则文档:
c - 将 unsigned Char Boolean_type 重新定义为 True 和 false 结构
根据 Autosar_SWS,布尔值必须是unsigned char
. 但是我的作品中有很多 MISRA 违规,例如 MISRA 规则 10.1(转换违规)、规则 12.6(有效布尔值)。
我想知道我是否为我的应用程序重新定义了 BOOLEAN,如下所示:
安全问题和后果是什么?