此版本包括以下增强功能:
发布日期:2023 年 5 月 31 日
增强 Automotive Compliance Pack
- MISRA C:2012 规则集已根据“MISRA C:2012 Amendment 4”中的新增规则和更新规则进行扩展。
此外,引入“MISRA C:2023”文件后(该文件合并了 MISRA C:2012 及所有修正内容,包括 Amendment 4),“MISRA C 2012”内建测试配置已更名为“MISRA C 2023 (MISRA C 2012)”。此配置包含项由 Parasoft·C/C++test 提供的所有 MISRA C:2023 / MISRA C:2012 及 Amendment 4 规则。
注意:为确保合规流程的兼容性和连续性,规则标识符没有更改,“MISRAC2012”前缀仍用于所有 MISRA C:2023 / MISRA C:2012 及 Amendment 4 规则(例如“MISRAC2012-RULE_11_10-a”)。
- HIS Source Code Metrics 配置扩展了路径数(PATH)指标 / METRICS-44。
增强静态分析
平台支持
C/C++test 现在支持 Windows Server 2022。
编译器支持
现已支持以下编译器:
编译器名称 | 编译器标识符 |
---|---|
GNU GCC 12 for x86-64 | gcc_12-64 |
GNU GCC 12 for aarch64/arm64 | gcc_12-aarch64 |
GNU GCC 11 for aarch32/arm | gcc_11-aarch32 |
GNU GCC 10 for aarch32/arm | gcc_10-aarch32 |
GNU GCC 9 for aarch64/arm64 | gcc_9-aarch64 |
GNU GCC 9 for aarch32/arm | gcc_9-aarch32 |
GNU GCC 8 for aarch32/arm | gcc_8-aarch32 |
Hexagon 8.6 | hexagon-clang_8_6 |
WindRiver Clang/ARM 9.0 | wrclang_9_0-x86_64, wrclang_9_0-aarch32 |
此外,还增强了对 Microsoft Visual C++ Compiler 17.4 的支持。
请参阅编译器。
更新的测试配置
MISRA C 2012 已更新并更名为 MISRA C 2023 (MISRA C 2012)。
以下测试配置已根据新规则进行了更新:
- AUTOSAR C++14 编码指南
- Flow Analysis Aggressive
- Flow Analysis Fast
- Flow Analysis Standard
- Global Analysis
- High Integrity C++
- HIS Source Code Metrics
- Joint Strike Fighter
- MISRA C 1998
- MISRA C 2004
- MISRA C 2012 > MISRA C 2023 (MISRA C 2012)
- MISRA C++ 2008
- Recommended Rules for FDA (C)
- Recommended Rules for FDA (C++)
- Recommended Rules
- SEI CERT C Guidelines
- SEI CERT C Rules
- SEI CERT C++ Rules
- Sutter-Alexandrescu
其他更新
- 现在支持与 Linux 的 Bazel 构建集成。请参阅与 Bazel 集成。
优化在 Eclipse IDE 暗色主题下运行时的外观和感受。
弃用和删除的支持
删除对团队服务器的支持
已删除在 DTP 2022.1 中弃用的团队服务器。如果您的 C/C++test 团队配置、规则和规则映射仍存储在 DTP 团队服务器中,请将它们迁移到共享位置。请参阅将测试配置、规则和规则映射从团队服务器迁移到共享位置。
删除的平台支持
现已删除对以下平台的支持:
- Windows Server 2016
即将弃用的编译器
在未来的版本中,将不再支持以下编译器:
- Altium TASKING Vx-toolset for TriCore C/C++ Compiler 6.2
- Clang 6.0
- FR Family SOFTUNE C/C++ Compiler V6
- Green Hills Software Compiler Native v. 5.0
- Green Hills Software Compiler for ARM64 v. 2014_1.x
- Green Hills Software Compiler for PPC v. 4.2
- Green Hills Software Compiler for V850 v. 2014.1.x
- Microsoft Visual C++ 14.0
- Microsoft Visual C++ 14.0 (x64)
- Renesas SH SERIES C/C++ Compiler V.9.04.xx
- TI MSP430 C/C++ Compiler GNU GCC 6.x
- TI TMS320C2000 C/C++ Compiler v16.9
- Wind River GCC 4.8.x
已弃用的编译器
已弃用以下编译器的支持,并将在以后的版本中删除:
- Altium TASKING C compiler for 80C196 v. 6.0 r1
- Clang 5.0
- Freescale C/C++ Compiler v. 5.1 for Embedded ARM
- Freescale CodeWarrior ANSI-C/cC++ Compiler 5.0.x for HC12
- Freescale CodeWarrior C/C++ Compiler v. 6.0 for ColdFire
- Green Hills Software Compiler for ARM v. 2014_1.x
- Green Hills Software Compiler for PPC v. 4.0.x
- Green Hills Software Compiler for V850 v. 2013.5.x
- IAR Compiler for STM8 v. 1.4x
删除的编译器支持
不再支持以下编译器:
- ARM Clang 6.6
- ARM GCC 4.5
- ARM RealView 4.1
- ARM RealView 4.1 for uVision
- Altium TASKING Vx-toolset for TriCore C/C++ Compiler 4.0
- Altium TASKING Vx-toolset for TriCore C/C++ Compiler 6.0
- Altium TASKING classic compiler for C166/ST10 v. 6.0
- COSMIC Software 68HC08 C Cross Compiler V4.6.x
- Clang 3.9
- Clang 4.0
- CodeSourcery Sourcery G++ Lite 2009q1-203
- Embarcadero C++ Compiler 6.2
- Embarcadero C++ Compiler 6.9
- GNU GCC 4.0.x (x86)
- GNU GCC 4.0.x (x86_64)
- GNU GCC 4.1.x (x86)
- GNU GCC 4.1.x (x86_64)
- GNU GCC 4.2.x (x86)
- GNU GCC 4.2.x (x86_64)
- GNU GCC 4.3.x (x86)
- GNU GCC 4.3.x (x86_64)
- GNU GCC 4.4.x (x86)
- GNU GCC 4.4.x (x86_64)
- GNU GCC 4.5.x (x86)
- GNU GCC 4.5.x (x86_64)
- GNU GCC 4.6.x (x86)
- GNU GCC 4.6.x (x86_64)
- GNU GCC 4.7.x (x86)
- GNU GCC 4.7.x (x86_64)
- GNU GCC 4.8.x (x86)
- GNU GCC 4.8.x (x86_64)
- GNU GCC 4.9.x (x86)
- GNU GCC 4.9.x (x86_64)
- Green Hills Software Compiler Native v. 4.2
- Green Hills Software Compiler for V850 v. 5.1.x
- Green Hills Software Compiler for PPC v. 3.5
- IAR Compiler for ARM v. 6.1x
- IAR Compiler for ARM v. 6.3x
- IAR Compiler for ARM v. 6.6x
- IAR Compiler for ARM v. 6.7x
- IAR Compiler for MSP430 v. 5.4x
- Intel(R) C++ Compiler v 18.0
- Keil C166 7.0
- Keil C51 8.x
- Microsoft Visual C++ 11.0
- Microsoft Visual C++ 11.0 (x64)
- Microsoft Visual C++ 12.0
- Microsoft Visual C++ 12.0 (x64)
- National Instruments LabWindows/CVI 2013 Clang C/C++ Compiler v2.9
- National Instruments LabWindows/CVI 9.0
- QNX GCC 4.2.x
- QNX GCC 4.4.x
- Renesas M16C/R8C C Compiler 5.4x
- Renesas RX C/C++ Compiler 2.2x
- Renesas SH SERIES C/C++ Compiler V.5.1x.x
- Renesas SH SERIES C/C++ Compiler V.9.03.xx
- TI ARM C/C++ Compiler v5.1.x
- TI TMS320C2000 C/C++ Compiler v6.2
- TI TMS320C6x C/C++ Compiler v7.3
删除的测试配置
已删除以下测试配置:
- Run Altium TASKING CTC Application with Mem Monitoring - CrossView
- Run Altium TASKING CTC Tests - CrossView
解决的 Bug 和 FR
Bug/FR ID | 说明 |
---|---|
CPP-39580 | [static] MISRA2012-RULE-5_6 和 MISRA2012-RULE-5_7 规则应为全局规则 |
CPP-40072 | [rulewizard] 增加对 constexpr if 的支持 |
CPP-42545 | [static] CERT-C-FIO41:现有映射过于笼统 |
CPP-42649 | [static] 优化 AUTOSAR A2-10-5、MISRA2008 2-10-5 以及 MISRA C 2012 Rule 5.8 和 5.9 的映射 |
CPP-43932 | [static] HIS 指标 - 路径数(PATH) |
CPP-44741 | [engine] Constexpr c-tor 要求在非常量表达式上下文中初始化成员 |
CPP-44752 | [static] CODSTA-145 (CERT_C-POS30-c) 可以将由 '\0' 初始化的缓冲区作为例外 |
CPP-44917 | [static] 优化 CERT MEM02 的映射 |
CPP-45439 | [static] AUTOSAR-A2_10_5_a 不应检查静态局部变量 |
CPP-46011 | [static] 优化 CERT-ERR33 和 CERT-POS54 的映射 |
CPP-46408 | [static] CERT_C-CON33-a:查看 SECURITY-25 规则中的函数列表 |
CPP-47128 | [static] MISRAC2012-RULE_5_9-a 对没有链接的对象报告不正确的违规信息 |
CPP-47470 | [static] CODSTA-127 和 CODSTA-127_b 可以扩展以检测数组类型到整数类型的转换 |
CPP-47508 | [static] MISRA2008-5_0_10 规则不遵循 MISRA C++ Rule 5-0-10 的例外 |
CPP-47804 | [static] CODSTA-203 不应检测 std::cout 中使用的字符串 |
CPP-47863 | [engine] 指定初始化器中的类型转换重构不正确 |
CPP-48197 | [static] 优化 AUTOSAR A8-4-7 的映射 |
CPP-49197 | [static] 优化 OOP-48 (AUTOSAR-M11_0_1-a) 中 POD 的定义 |
CPP-49771 | [static] 优化 AUTOSAR A5-2-2 的映射 |
CPP-49849 | [static] AUTOSAR A3-9-1:考虑不报告用于字符的纯字符类型 |
CPP-49917 | [static] 应优化 CERT_C-EXP36 的映射 |
CPP-50105 | [static] 在 AUTOSAR A2-3-1 中显示未定义的字符 |
CPP-50174 | [static] 优化 CERT_C-POS44 的映射 |
CPP-51175 | [engine] 因 edg.implicit_typename_enabled=true 导致解析错误 |
CPP-51288 | [engine] 错误:不允许使用限定名称 |
CPP-51304 | [engine] cpptestcc 错误:没有重载函数 "vfc::slerp" 的实例与参数列表匹配 |
CPP-51452 | [rulewizard] _Static_assert 中的表达式应被静态分析规则检测 |
CPP-51594 | [compiler] 支持 GNU GCC 10 aarch32/arm |
CPP-51687 | [static] GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) 针对使用的别名产生误报 |
CPP-51753 | [compiler] 支持 WindRiver Clang/ARM 9.0.1 和 VxWorks 7.0 SR 640 for Linux(扩展) |
CPP-51767 | [static] MISRA2004-11_3_a (AUTOSAR-M5_2_9-a) 应将 uintptr_t 和 intptr_t 类型视作例外。 |
CPP-51773 | [compiler] 支持 GNU GCC 11 aarch32/arm |
CPP-51843 | [compiler] 静态 asm 过程和 'rvct_5_0_uV' 发生解析错误 |
CPP-51853 | [static] MISRA2004-8_7 (AUTOSAR-M3_4_1-b) 在模板函数中使用变量时误报 |
CPP-51854 | [static] EXCEPT-17 (AUTOSAR-M15_3_6-a) 对嵌套 try-catch 块误报 |
CPP-52158 | [engine] CWC 内部错误:断言失败: "exprutil.c", line 17859 in alloc_expr_ctor_dynamic_init |
CPP-52163 | [compiler] 使用 TASKING-6.3 处理 '_packed_' 属性时发生解析错误 |
CPP-52185 | [static] BD-PB-UCMETH 规则应添加到 MISRAC2012-RULE_2_1 的映射中 |
CPP-52188 | [static] 优化 CERT_C-EXP20 的映射 |
CPP-52196 | [static] 当指针是逻辑运算符的操作数时,MISRAC2012-RULE_10_1-a (CODSTA-161_a) 应检测到该情况 |
CPP-52212 | [engine] 插桩错误:模板化类的 final 修饰符未重建 |
CPP-52222 | [ide] 传递给由 C++test Professional 启动的 C++test Engine(标准版)的 build.id 值应使用会话开始时间计算,而不是当前时间 |
CPP-52242 | [static] 优化 CERT-MSC07_C 和 CERT-MSC12_C 的映射 |
CPP-52250 | [engine] CRTP C++ 技术插桩失败 |
CPP-52260 | [engine] 无法为模板类特化的类体外部模板方法定义收集覆盖率。 |
CPP-52264 | [static] PB-69 报告 python 错误 |
CPP-52266 | [static] CODSTA-CPP-92 (MISRA2008-10_2_1) 对赋值运算符误报 |
CPP-52274 | [rulewizard] Typedefs 用于调用构造函数时不可见 |
CPP-52302 | [compiler] 在不应评估 iccarm 响应文件中 Windows 风格路径的情况下对其进行评估 |
CPP-52322 | [static] 优化 CERT-C INT10 的映射 |
CPP-52338 | [static] GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) 在实际使用别名时误报 |
CPP-52344 | [static] MISRA2008-2_10_6_a (CODSTA-CPP-87_a) 误报:规则报告类名与其构造函数名之间的标识符存在冲突 |
CPP-52345 | [static] CERT_CPP-DCL60-a (GLOBAL-UNIQUETYPE) 误报:报告类与其构造函数同名 |
CPP-52351 | [engine] 错误:表达式必须具有常量值 |
CPP-52372 | [complier] 支持 Hexagon 8.6(Linux,扩展,完整版) |
CPP-52384 | [rulewizard] using 声明无法看到模板基类的 entity->MemberFunction |
CPP-52385 | [rulewizard] 推导指南不应被检测为函数定义 |
CPP-52386 | [engine] 将 enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang 添加到 clang 编译器的可识别选项中 |
CPP-52416 | [static] 行抑制不一致 |
CPP-52483 | [docs] 文档 CPPTEST_MULTI_PROCESSES_LOG 配置宏 |
CPP-52515 | [static] OPT-32_b (MISRA2008-0_1_8_b) 对仅包含 static_assert 表达式的模板函数误报 |
CPP-52521 | [engine] 插桩不正确 |
CPP-52530 | [static] GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) 对仅用作模板参数的局部结构的误报 |
CPP-52538 | [rulewizard] 模板实例中 _Static_assert 的表达式应通过静态分析规则检测 |
CPP-52544 | [static] 拆分 CODSTA-CPP-53 (AUTOSAR-A7_1_1-a) 规则(单独检查参数) |
CPP-52558 | [engine] 错误:未捕获 'key_only' |
CPP-52577 | [static] NAMING-47 (MISRA2008-2_10_1) 在标识符的特定字符组合存在差异时不会报告 |
CPP-52578 | [static] OPT-03 (AUTOSAR-A0_1_4-a) 在参数仅用于 decltype() 时误报 |
CPP-52581 | [static] CODSTA-26 (HICPP-5_1_1-a) 对模板中使用的 const/constexpr 的初始化器的硬编码值误报 |
CPP-52593 | [static] MISRA2004-16_8 (AUTOSAR-A8_4_2-a) 对 'if constexpr' 中包含 'return' 的函数误报 |
CPP-52599 | [engine] Error[Pe265]: member "A::c_numberOfA" (在第 19 行声明) 不可访问 |
CPP-52602 | [static] MISRA2004-17_5 (MISRAC2012-RULE_18_5-a) 对函数参数中指向数组的指针误报 |
CPP-52603 | [static] MISRA2004-16_7 (MISRAC2012-RULE_8_13-a) 对指向数组类型的指针误报 |
CPP-52623 | [static] CODSTA-CPP-78 (MISRA2008-9_3_3) 在函数在 'if constexpr' 中包含非静态代码时误报 |
CPP-52625 | [static] CODSTA-81 (MISRA2008-3_3_2) 在间接未命名命名空间中声明函数时误报 |
CPP-52648 | [rulewizard] decltype() 中的表达式应通过静态分析规则检测 |
CPP-52656 | [static] MISRA2004-14_3 (AUTOSAR-M6_2_3-a) 在 [[fallthrough]] 属性与 null 语句位于同一行时进行报告 |
CPP-52659 | [static] MISRA2004-17_6_a (AUTOSAR-A3_8_1-b) 在返回 for-range 元素地址时误报 |
CPP-52669 | [static] 运行规则 'INTERNAL-METRICS-METHODS2 时出错 |
CPP-52674 | [engine] 在没有捕获的情况下,lambda 中无法使用引用 |
CPP-52702 | [engine] 错误:表达式必须具有常量值 |
CPP-52736 | [static] CODSTA-MCPP-37 (AUTOSAR-A12_1_6-a) 在派生类中的构造函数初始化成员时误报 |
CPP-52743 | [static] INIT-18 (AUTOSAR-A12_1_2-a) 在构造函数中分配静态成员时误报 |
CPP-52745 | [engine] 错误:从 type '__m128i {aka __vector(2) long long int}' 到 type 'cv_ void_ptr {aka const volatile void*}' 的类型转换无效 |
CPP-52760 | [static] MISRA2008-5_2_10 检测非算术运算符 |
CPP-52769 | [engine] 为 aarch64 添加对 __va_list 类型的支持 |
CPP-52797 | [compiler] IAR 编译器的 --utf8_text_in 选项解析不正确 |
CPP-52819 | [static] OOP-07 (AUTOSAR-A10_1_1-a) 无法正确检测接口类 |
CPP-52825 | [engine] 没有函数模板 "f" 的实例与参数列表匹配 |
CPP-52831 | [static] GLOBAL-ONEUSEVAR (MISRA2008-0_1_4) 在变量用于模板中的 static_assert 时误报 |
CPP-52839 | [static] 优化 AUTOSAR A8-4-3 的映射 |
CPP-52875 | [static] 优化 MISRAC2012-RULE-12_2 规则的映射 |
CPP-52876 | [static] GLOBAL-ONEFILEDECL (AUTOSAR-M3_2_3) 对枚举前向声明误报 |
CPP-52877 | [static] Pb-41_b 在使用带有 'std::initializer_list' 的大括号初始化器时误报 |
CPP-52879 | [complier] Clang 10 属性指定的对齐值无效 |
CPP-52890 | [compiler] 错误 C3615:constexpr 函数 'operator new' 无法产生常量表达式 |
CPP-52892 | [static] CODSTA-CPP-103 (AUTOSAR-A8_4_8-a) 在构造函数初始化列表中使用参数时误报 |
CPP-52977 | [static] CODSTA-224 (AUTOSAR-A5_16_1-a) 对模板成员初始化器中使用的条件运算符误报 |
CPP-52984 | [engine] GCC 允许 "weak" 字符串作为 constexpr |
CPP-53007 | [ide] 通过测试用例编辑器上的“全部折叠”链接更新标题信息 |
CPP-53070 | [static] CODSTA-184 报告 IndexError:列表索引超出范围 |
CPP-53100 | [cli] C/C++test Standard CLI 因跳过部分测试的 GoogleTest 报告崩溃 |
CPP-53683 | [ide] 使用“代码”在测试用例编辑器中编辑“桩函数配置”时出现问题 |
FA-4985 | BD-PB-CC 在条件的值取决于模板参数时对条件误报 |
FA-9225 | BD-PB-VOVR 的“存在至少一条路径...时报告”的参数行为与描述不符 |
FA-9261 | BD-PB-CC 在为进行相等性比较而检查超出范围值时漏报 |
FA-9265 | 对引用类型的 dynamic_cast 转换失败时,模型错误抛出 'int' 而不是 'std::bad_cast' |
FA-9335 | 在敏感模式下当除数被转换时,BD-PB-ZERO 误报 |
FA-9368 | BD-PB-NOTINIT 误报 |
PT-1350 | 未找到命令行功能时,cpptest.license.wait.for.tokens.time 不会等待 |
PT-1704 | [VS] Visual Studio 插件中没有代理支持 |
PT-1727 | “开始停用,空闲时自动释放”不生效 |
XT-41092 | 规则链接的相对路径解析为绝对路径会导致报告和规则文档不可移植 |
CPP-52820* | [engine] 插桩错误:表达式必须具有常数值插桩失败 |
CPP-53718* | [engine] constexpr __builtin_strcmp/__builtin_memcmp 导致内存缓冲区溢出 |
CPP-53785* | [static] OPT-43:IndexError:字符串索引超出范围 |
XT-41178* | 支持 Gitlab SAST v.15 报告格式 |
*在 C/C++test 2023.1.1 或更新版本中提供
规则更新
新增规则
规则 ID | 标题 |
---|---|
APSC_DV-002590-l | 避免有符号整数溢出 |
AUTOSAR-A2_10_5-c | 定义具有内部链接的对象的标识符应是唯一的 |
AUTOSAR-A2_10_5-d | 定义具有内部链接的函数的标识符应是唯一的 |
AUTOSAR-A3_9_1-c | 应该使用 typedef 替代普通 char 类型 |
AUTOSAR-A4_7_1-i | 避免在整数类型之间转换时的数据丢失 |
AUTOSAR-A4_7_1-j | 避免有符号整数溢出 |
AUTOSAR-A4_7_1-k | 避免在整数类型之间转换时的数值变化 |
AUTOSAR-A7_1_1-b | 尽可能将参数声明为 const |
AUTOSAR-M0_1_3-d | 项目不应包含具有外部链接的未使用变量 |
AUTOSAR-M0_1_3-e | 项目不应包含具有内部链接的未使用变量 |
BD-PB-INTDL | 避免在整数类型之间转换时的数据丢失 |
BD-PB-INTUB | 避免有符号整数溢出 |
BD-PB-INTVC | 避免在整数类型之间转换时的数值变化 |
BD-PB-INTWRAP | 避免在进行整数运算时的回绕 |
BD-PB-NOTINITAT | 原子对象在被访问前应被正确初始化 |
BD-TRS-THRDR | 线程之间不应存在数据争用 |
BD-TRS-THRDSTR | 线程同步对象不应该被线程销毁 |
BD-TRS-THRINIT | 线程同步对象不应该被线程初始化 |
BD-TRS-THRTHR | 一个线程不应该由另一个线程创建 |
BD-TRS-THRTSS | 线程专有存储不应该由线程创建 |
BD-TRS-TIMEDLOCK | 标准库函数 mtx_timedlock() 不得在不支持超时的互斥锁上调用 |
CERT_C-DCL00-b | 尽可能将参数声明为 const |
CERT_C-EXP20-b | 测试一个值是否为零应该是显式的,除非操作数实际上是布尔值 |
CERT_C-INT08-b | 避免有符号整数溢出 |
CERT_C-INT08-c | 避免在整数类型之间转换时的数值变化 |
CERT_C-INT08-d | 避免在进行整数运算时的回绕 |
CERT_C-INT31-p | 避免在整数类型之间转换时的数值变化 |
CERT_C-MSC07-i | 避免无法到达的方法 |
CERT_C-MSC12-i | 避免无法到达的方法 |
CERT_C-MSC12-j | 避免始终计算为相同值的条件 |
CERT_C-MSC12-k | 所有非 null 语句无论如何执行都至少有一个副作用,或者导致控制流发生变化 |
CODSTA-112_b | 不应使用指向可变修改数组类型的指针 |
CODSTA-220_b | 不应使用最小宽度的整数常量宏的小整数变体 |
CODSTA-223_b | 应该使用 typedef 替代普通 char 类型 |
CODSTA-226_a | 应使用可能返回错误的标准库函数返回的值 |
CODSTA-226_b | 不需要检查返回值的标准库函数应该被转换为 'void' |
CODSTA-227 | 应使用可能返回错误的 POSIX 库函数所返回的值 |
CODSTA-228_a | 不要使用含有赋值、增量或减量运算符的流参数调用 'getc()'、'putc()'、'getwc()' 或 'putwc()' |
CODSTA-228_b | 不要使用包含函数调用或类似函数的宏调用的流参数调用 'getc()'、'putc()'、'getwc()' 或 'putwc()' |
CODSTA-229 | 余数运算符 '%' 的操作数应为无符号的整数类型 |
CODSTA-230 | 不要将指针转换为更严格对齐的指针类型 |
CODSTA-231 | 不要将具有线程存储期的对象的地址分配给具有静态存储期的对象 |
CODSTA-232 | 在表达式中,增量(++)和减量(--)运算符不应该与算术运算符混合使用 |
CODSTA-301 | 转换不得删除指针指向的类型中的任何 'const'、'volatile' 或 '_Atomic' 限定 |
CODSTA-302 | 移位运算符的右操作数应介于零和一之间,小于左操作数的基本类型或基础类型的位宽 |
CODSTA-CPP-108 | 对于‘复制成本低’的类型,const 引用的参数应按值传递 |
CODSTA-CPP-108_b | 通过值传递具有平凡复制构造函数的小对象 |
CODSTA-CPP-109 | 对于非‘复制成本低’的类型,参数应该通过引用传递 |
CODSTA-CPP-53_b | 尽可能将参数声明为 const |
CODSTA-MC-101 | 线程对象、线程同步对象和线程特有存储指针不应具有自动存储期 |
CODSTA-MC-16 | '_Atomic' 限定符不应与 'void' 类型一起使用 |
CODSTA-MC-17 | 结构和联合类型的原子对象的成员不应直接访问 |
CODSTA-MC-18 | 转换时不得从指针类型中删除任何 '_Atomic' 限定 |
CODSTA-MC-19 | 原子类型的表达式的值应独立于线程交错 |
CODSTA-MC-20 | 仅使用 'memory_order_seq_cst' 作为显式内存顺序参数 |
CODSTA-MC-21 | 传递给 'mtx_init()' 函数的第二个参数应为 'mtx_plain'、'mtx_timed'、'mtx_plain | mtx_recursive' 或 'mtx_timed | mtx_recursive' |
CODSTA-MC-22 | 线程对象、线程同步对象和线程特有存储指针只能由相应的标准库函数访问 |
CWE-190-h | 避免有符号整数溢出 |
GLOBAL-REUSEDEXTFUN | 定义具有外部链接的函数的标识符应为唯一标识符 |
GLOBAL-REUSEDEXTVAR | 定义具有外部链接的对象的标识符应为唯一标识符 |
GLOBAL-REUSEDSTATFUN | 定义具有内部链接的函数的标识符应是唯一的 |
GLOBAL-REUSEDSTATVAR | 定义具有内部链接的对象的标识符应是唯一的 |
GLOBAL-UNIQUETYPEC | 标签名称应为唯一标识符 |
GLOBAL-UNIQUETYPEDEFC | typedef 名称应为唯一标识符 |
GLOBAL-UNUSEDEXTVAR | 项目不应包含具有外部链接的未使用变量 |
HICPP-4_2_2-g | 避免在整数类型之间转换时的数据丢失 |
HICPP-4_2_2-h | 避免有符号整数溢出 |
HICPP-4_2_2-i | 避免在整数类型之间转换时的数值变化 |
HICPP-7_1_2-b | 尽可能将参数声明为 const |
METRICS-44 | 函数中的执行路径数不应大于 80 |
MISRA2008-0_1_3_d | 项目不应包含具有外部链接的未使用变量 |
MISRA2008-0_1_3_e | 项目不应包含具有内部链接的未使用变量 |
MISRA2008-2_10_5_c | 非成员对象或具有静态存储期的函数的标识符名称不得被重复使用 |
MISRA2008-2_10_5_d | 非成员对象或具有静态存储期的函数的标识符名称不得被重复使用 |
MISRA2008-7_1_1_b | 尽可能将参数声明为 const |
MISRA2012-DIR-4_1_l | 避免有符号整数溢出 |
MISRA2012-DIR-4_1_m | 避免在整数类型之间转换时的数据丢失 |
MISRA2012-DIR-5_1 | 不要使用具有不同的锁集的全局变量 |
MISRA2012-DIR-5_1_b | 变量应该在单个关键部分的上下文中使用 |
MISRA2012-DIR-5_1_c | 线程之间不应存在数据争用 |
MISRA2012-DIR-5_2 | 不要以不同的顺序获取锁 |
MISRA2012-DIR-5_3 | 一个线程不应该由另一个线程创建 |
MISRA2012-RULE-11_10 | _Atomic 限定符不应应用于不完整的类型 void |
MISRA2012-RULE-12_2_b | 移位运算符的右操作数应介于零和一之间,小于左操作数的基本类型或基础类型的位宽 |
MISRA2012-RULE-12_6 | 原子对象的结构体和联合体成员不得直接访问 |
MISRA2012-RULE-13_2_h | 原子类型的表达式的值应独立于线程交错 |
MISRA2012-RULE-18_10 | 不应使用指向可变修改数组类型的指针 |
MISRA2012-RULE-18_6_c | 不要将具有线程存储期的对象的地址分配给具有静态存储期的对象 |
MISRA2012-RULE-21_25 | 仅使用 'memory_order_seq_cst' 作为显式内存顺序参数 |
MISRA2012-RULE-21_26 | 标准库函数 mtx_timedlock() 不得在不支持超时的互斥锁上调用 |
MISRA2012-RULE-22_11 | 不要链接或分离以前连接或分离的线程 |
MISRA2012-RULE-22_12 | 线程对象、线程同步对象和线程特有存储指针只能由相应的标准库函数访问 |
MISRA2012-RULE-22_13 | 线程对象、线程同步对象和线程特有存储指针不应具有自动存储期 |
MISRA2012-RULE-22_14_a | 线程同步对象不应该被线程初始化 |
MISRA2012-RULE-22_14_b | 传递给 'mtx_init()' 函数的第二个参数应为 'mtx_plain'、'mtx_timed'、'mtx_plain | mtx_recursive' 或 'mtx_timed | mtx_recursive' |
MISRA2012-RULE-22_15 | 线程同步对象不应该被线程销毁 |
MISRA2012-RULE-22_16 | 不要抛弃未释放的锁 |
MISRA2012-RULE-22_17 | 不释放尚未获得的锁 |
MISRA2012-RULE-22_18 | 避免双重锁定 |
MISRA2012-RULE-22_19 | 一个条件变量至多与一个 mutex 变量相关联 |
MISRA2012-RULE-22_20 | 线程专有存储不应该由线程创建 |
MISRA2012-RULE-2_1_h | 避免无法到达的方法 |
MISRA2012-RULE-2_8_a | 项目不应包含具有外部链接的未使用变量 |
MISRA2012-RULE-2_8_b | 项目不应包含具有内部链接的未使用变量 |
MISRA2012-RULE-2_8_c | 避免未使用的局部变量 |
MISRA2012-RULE-5_8_b | 定义具有外部链接的函数的标识符应为唯一标识符 |
MISRA2012-RULE-7_6 | 不应使用最小宽度的整数常量宏的小整数变体 |
MISRA2012-RULE-9_6 | 使用链式指示符的初始化器不应包含没有指示符的初始化器 |
MISRA2012-RULE-9_7 | 原子对象在被访问前应被正确初始化 |
MISRAC2012-DIR_4_1-l | 避免有符号整数溢出 |
MISRAC2012-DIR_4_1-m | 避免在整数类型之间转换时的数据丢失 |
MISRAC2012-DIR_5_1-a | 不要使用具有不同的锁集的全局变量 |
MISRAC2012-DIR_5_1-b | 变量应该在单个关键部分的上下文中使用 |
MISRAC2012-DIR_5_1-c | 线程之间不应存在数据争用 |
MISRAC2012-DIR_5_2-a | 不要以不同的顺序获取锁 |
MISRAC2012-DIR_5_3-a | 一个线程不应该由另一个线程创建 |
MISRAC2012-RULE_11_10-a | '_Atomic' 限定符不应与 'void' 类型一起使用 |
MISRAC2012-RULE_12_2-b | 移位运算符的右操作数应介于零和一之间,小于左操作数的基本类型或基础类型的位宽 |
MISRAC2012-RULE_12_6-a | 结构和联合类型的原子对象的成员不应直接访问 |
MISRAC2012-RULE_13_2-h | 原子类型的表达式的值应独立于线程交错 |
MISRAC2012-RULE_18_10-a | 不应使用指向可变修改数组类型的指针 |
MISRAC2012-RULE_18_6-c | 不要将具有线程存储期的对象的地址分配给具有静态存储期的对象 |
MISRAC2012-RULE_21_25-a | 仅使用 'memory_order_seq_cst' 作为显式内存顺序参数 |
MISRAC2012-RULE_21_26-a | 标准库函数 mtx_timedlock() 不得在不支持超时的互斥锁上调用 |
MISRAC2012-RULE_22_11-a | 不要链接或分离以前连接或分离的线程 |
MISRAC2012-RULE_22_12-a | 线程对象、线程同步对象和线程特有存储指针只能由相应的标准库函数访问 |
MISRAC2012-RULE_22_13-a | 线程对象、线程同步对象和线程特有存储指针不应具有自动存储期 |
MISRAC2012-RULE_22_14-a | 线程同步对象不应该被线程初始化 |
MISRAC2012-RULE_22_14-b | 传递给 'mtx_init()' 函数的第二个参数应为 'mtx_plain'、'mtx_timed'、'mtx_plain | mtx_recursive' 或 'mtx_timed | mtx_recursive' |
MISRAC2012-RULE_22_15-a | 线程同步对象不应该被线程销毁 |
MISRAC2012-RULE_22_16-a | 不要抛弃未释放的锁 |
MISRAC2012-RULE_22_17-a | 不释放尚未获得的锁 |
MISRAC2012-RULE_22_18-a | 避免双重锁定 |
MISRAC2012-RULE_22_19-a | 在条件变量上的并行等待操作不应使用多个 mutex |
MISRAC2012-RULE_22_20-a | 线程专有存储不应该由线程创建 |
MISRAC2012-RULE_2_1-h | 避免无法到达的方法 |
MISRAC2012-RULE_2_8-a | 项目不应包含具有外部链接的未使用变量 |
MISRAC2012-RULE_2_8-b | 项目不应包含具有内部链接的未使用变量 |
MISRAC2012-RULE_2_8-c | 避免未使用的局部变量 |
MISRAC2012-RULE_5_8-b | 定义具有外部链接的函数的标识符应为唯一标识符 |
MISRAC2012-RULE_7_6-a | 不应使用最小宽度的整数常量宏的小整数变体 |
MISRAC2012-RULE_9_6-a | 使用链式指示符的初始化器不应包含没有指示符的初始化器 |
MISRAC2012-RULE_9_7-a | 原子对象在被访问前应被正确初始化 |
MRM-58_a | 内存分配函数的结果应被立即转换 |
MRM-58_b | 内存分配函数的结果应该立即被转换为指向被分配类型的指针 |
OOP-07_c | 确保派生类最多具有一个不是接口类的基类 |
OPT-43 | 项目不应包含具有内部链接的未使用变量 |
PB-80 | 使用链式指示符的初始化器不应包含没有指示符的初始化器 |
SECURITY-53 | 不应使用 'pthread_kill'、'pthread_sigqueue' 和 'tgkill' 函数向线程发送信号 |
更新规则
类别 ID | 规则 ID |
---|---|
DISA ASD STI | APSC_DV-001995-e, APSC_DV-001995-f, APSC_DV-002000-a, APSC_DV-002400-d, APSC_DV-002590-e, APSC_DV-003110-a |
AUTOSAR C++14 编码指南 | AUTOSAR-A0_1_1-a, AUTOSAR-A0_1_6-a, AUTOSAR-A10_1_1-a, AUTOSAR-A12_1_2-a, AUTOSAR-A12_1_6-a, AUTOSAR-A12_8_3-a, AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_5_3-j, AUTOSAR-A2_10_4-a, AUTOSAR-A2_10_4-b, AUTOSAR-A2_10_5-a, AUTOSAR-A2_10_5-b, AUTOSAR-A2_3_1-a, AUTOSAR-A3_8_1-a, AUTOSAR-A3_8_1-b, AUTOSAR-A3_9_1-b, AUTOSAR-A4_7_1-h, AUTOSAR-A5_0_3-a, AUTOSAR-A5_16_1-a, AUTOSAR-A5_1_1-a, AUTOSAR-A5_2_2-a, AUTOSAR-A5_2_3-a, AUTOSAR-A5_3_2-a, AUTOSAR-A5_6_1-a, AUTOSAR-A7_1_1-a, AUTOSAR-A7_3_1-a, AUTOSAR-A8_4_2-a, AUTOSAR-A8_4_3-a, AUTOSAR-A8_4_7-a, AUTOSAR-A8_4_8-a, AUTOSAR-A8_5_0-a, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_4-a, AUTOSAR-M0_3_1-e, AUTOSAR-M0_3_1-f, AUTOSAR-M10_2_1-a, AUTOSAR-M11_0_1-a, AUTOSAR-M15_3_6-a, AUTOSAR-M2_10_1-a, AUTOSAR-M3_2_3-a, AUTOSAR-M3_3_2-a, AUTOSAR-M3_4_1-b, AUTOSAR-M5_0_10-a, AUTOSAR-M5_2_10-a, AUTOSAR-M5_2_9-a, AUTOSAR-M6_2_3-a, AUTOSAR-M6_4_1-a, AUTOSAR-M7_1_2-b, AUTOSAR-M7_5_1-a |
流分析 | BD-PB-BADSHIFT , BD-PB-CC, BD-PB-EXCEPT, BD-PB-NOTINIT, BD-PB-NP, BD-PB-SUBSEQMOVE, BD-PB-UCMETH , BD-PB-VOVR, BD-PB-ZERO, BD-RES-FREE, BD-RES-LEAKS, BD-TRS-MLOCK, BD-TRS-REVLOCK |
SEI CERT C | CERT_C-CON30-a, CERT_C-CON31-b, CERT_C-CON33-a, CERT_C-CON43-a, CERT_C-DCL00-a, CERT_C-DCL13-a, CERT_C-DCL22-a, CERT_C-DCL30-a, CERT_C-ERR33-a, CERT_C-ERR33-b, CERT_C-EXP05-a, CERT_C-EXP32-a, CERT_C-EXP33-a, CERT_C-EXP34-a, CERT_C-EXP36-a, CERT_C-EXP40-a, CERT_C-FIO22-a, CERT_C-FIO41-a, CERT_C-FIO41-b, CERT_C-FIO42-a, CERT_C-FIO46-a, CERT_C-FLP03-a, CERT_C-INT08-a, CERT_C-INT10-a, CERT_C-INT30-a, CERT_C-INT31-a, CERT_C-INT31-o, CERT_C-INT32-a, CERT_C-INT33-a, CERT_C-INT34-a, CERT_C-INT36-b, CERT_C-MEM00-d, CERT_C-MEM00-e, CERT_C-MEM01-a, CERT_C-MEM02-a, CERT_C-MEM02-b, CERT_C-MEM12-a, CERT_C-MEM30-a, CERT_C-MEM31-a, CERT_C-MSC09-a, CERT_C-MSC19-b, CERT_C-MSC37-a, CERT_C-MSC41-a, CERT_C-POS30-c, CERT_C-POS44-a, CERT_C-POS48-b, CERT_C-POS53-a, CERT_C-POS54-a, CERT_C-WIN30-a |
SEI CERT C++ | CERT_CPP-DCL57-b, CERT_CPP-DCL60-a, CERT_CPP-ERR50-j, CERT_CPP-ERR51-a, CERT_CPP-ERR54-a, CERT_CPP-ERR56-a, CERT_CPP-ERR57-a, CERT_CPP-EXP53-a, CERT_CPP-EXP54-a, CERT_CPP-EXP54-b, CERT_CPP-EXP55-a, CERT_CPP-EXP63-a, CERT_CPP-FIO51-a, CERT_CPP-MEM50-a, CERT_CPP-MSC52-a, CERT_CPP-STR51-a |
编码规范 | CODSTA-112, CODSTA-126, CODSTA-127, CODSTA-127_b, CODSTA-145, CODSTA-161_a, CODSTA-184, CODSTA-203, CODSTA-223, CODSTA-224, CODSTA-26, CODSTA-81 |
C++ 编码规范 | CODSTA-CPP-103, CODSTA-CPP-11, CODSTA-CPP-53, CODSTA-CPP-92 |
Modern C++ 编码规范 | CODSTA-MCPP-37 |
常见缺陷列表 | CWE-190-a, CWE-362-e, CWE-401-a, CWE-415-a, CWE-416-a, CWE-476-a, CWE-704-d, CWE-704-e, CWE-772-a, CWE-798-a |
异常 | EXCEPT-17 |
全局静态分析 | GLOBAL-CONDMUTEXVAR, GLOBAL-ONEDEFTYPE, GLOBAL-ONEFILEDECL, GLOBAL-ONEUSEVAR, GLOBAL-REUSEDQUALGLOBVAR, GLOBAL-REUSEDQUALSTATFUN, GLOBAL-UNIQUETYPE, GLOBAL-UNIQUETYPEDEF, GLOBAL-UNUSEDTYPE |
High Integrity C++ | HICPP-10_3_1-a, HICPP-13_1_1-a, HICPP-15_3_2-a, HICPP-18_2_2-a, HICPP-1_2_1-h, HICPP-1_2_1-i, HICPP-2_4_1-a, HICPP-3_4_1-a, HICPP-4_1_1-b, HICPP-4_2_2-e, HICPP-4_2_2-f, HICPP-5_1_1-a, HICPP-5_2_1-c, HICPP-5_4_1-a, HICPP-5_4_1-c, HICPP-5_5_1-a, HICPP-5_8_1-a, HICPP-6_1_1-b, HICPP-6_3_2-a, HICPP-7_1_2-a, HICPP-7_4_2-c, HICPP-7_4_3-a, HICPP-8_4_1-a, HICPP-8_4_1-b |
初始化 | INIT-18 |
联合攻击战斗机 | JSF-009, JSF-059_b, JSF-097_d, JSF-111, JSF-114, JSF-118, JSF-136_a, JSF-151, JSF-164, JSF-170 |
MISRA C 1998 | MISRA-005, MISRA-083 |
MISRA C 2004 | MISRA2004-10_5, MISRA2004-11_3_a, MISRA2004-11_3_b, MISRA2004-11_5, MISRA2004-14_3, MISRA2004-14_9, MISRA2004-16_7, MISRA2004-16_8, MISRA2004-16_8_b, MISRA2004-17_5, MISRA2004-17_6_a, MISRA2004-8_7 |
MISRA C++ 2008 | MISRA2008-0_1_2_aa, MISRA2008-0_1_4, MISRA2008-0_1_5, MISRA2008-0_1_6, MISRA2008-0_3_1_b, MISRA2008-0_3_1_c, MISRA2008-10_2_1, MISRA2008-11_0_1, MISRA2008-15_3_6, MISRA2008-15_5_3_j, MISRA2008-2_10_1, MISRA2008-2_10_3, MISRA2008-2_10_4, MISRA2008-2_10_5_a, MISRA2008-2_10_5_b, MISRA2008-3_2_3, MISRA2008-3_3_2, MISRA2008-3_4_1_b, MISRA2008-5_0_10, MISRA2008-5_0_19, MISRA2008-5_2_10, MISRA2008-5_2_5, MISRA2008-5_2_9, MISRA2008-6_2_3, MISRA2008-6_4_1, MISRA2008-7_1_1, MISRA2008-7_1_2_a, MISRA2008-7_5_1, MISRA2008-7_5_2_a, MISRA2008-8_4_3 |
MISRA C 2012(遗留) | MISRA2012-DIR-4_13_a, MISRA2012-DIR-4_13_b, MISRA2012-DIR-4_13_f, MISRA2012-DIR-4_1_b, MISRA2012-DIR-4_1_c, MISRA2012-DIR-4_1_k, MISRA2012-RULE-10_1_a, MISRA2012-RULE-11_3, MISRA2012-RULE-11_4, MISRA2012-RULE-11_8, MISRA2012-RULE-12_2, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-15_6_b, MISRA2012-RULE-17_4, MISRA2012-RULE-17_4_b, MISRA2012-RULE-18_5, MISRA2012-RULE-18_6_a, MISRA2012-RULE-18_8, MISRA2012-RULE-1_3_a, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_c, MISRA2012-RULE-1_3_m, MISRA2012-RULE-21_16, MISRA2012-RULE-22_1, MISRA2012-RULE-22_2_a, MISRA2012-RULE-22_6, MISRA2012-RULE-2_2_b, MISRA2012-RULE-5_6_a, MISRA2012-RULE-5_7_a, MISRA2012-RULE-5_8, MISRA2012-RULE-5_9_a, MISRA2012-RULE-5_9_b, MISRA2012-RULE-8_13_a, MISRA2012-RULE-8_9, MISRA2012-RULE-9_1, MISRA2012-RULE-9_4 |
MISRA C 2023 (MISRA C 2012) | MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-c, MISRAC2012-DIR_4_1-k, MISRAC2012-DIR_4_13-a, MISRAC2012-DIR_4_13-b, MISRAC2012-DIR_4_13-f, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_11_3-a, MISRAC2012-RULE_11_4-a, MISRAC2012-RULE_11_8-a, MISRAC2012-RULE_12_2-a, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_15_6-b, MISRAC2012-RULE_17_4-a, MISRAC2012-RULE_17_4-b, MISRAC2012-RULE_18_5-a, MISRAC2012-RULE_18_6-a, MISRAC2012-RULE_18_8-a, MISRAC2012-RULE_1_3-a, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-c, MISRAC2012-RULE_1_3-m, MISRAC2012-RULE_21_16-a, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_22_2-a, MISRAC2012-RULE_22_6-a, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_5_6-a, MISRAC2012-RULE_5_7-a, MISRAC2012-RULE_5_8-a, MISRAC2012-RULE_5_9-a, MISRAC2012-RULE_5_9-b, MISRAC2012-RULE_8_13-a, MISRAC2012-RULE_8_9-a, MISRAC2012-RULE_9_1-a, MISRAC2012-RULE_9_4-a |
MISRA C++ 202X | MISRACPP202X-0090-a, MISRACPP202X-0097-a, MISRACPP202X-0110-b, MISRACPP202X-0150-a, MISRACPP202X-0152-a, MISRACPP202X-0280-b |
命名规范 | NAMING-20, NAMING-47 |
面向对象 | OOP-07, OOP-48 |
OWASP Top 10 2017 | OWASP2017-A6-a |
OWASP Top 10 2019 | OWASP2019-API4-b, OWASP2019-API7-b |
OWASP Top 10 2021 | OWASP2021-A5-a |
潜在的缺陷 | PB-41_b, PB-69 |
安全性 | SECURITY-25 |
STL 最佳实践 | STL-31, STL-34, STL-35 |
删除规则
规则 ID | 注意 |
---|---|
AUTOSAR-A8_4_7-b | 从 AUTOSAR C++ 14 配置中删除 - 替换为 AUTOSAR-A8_4_7-a。 |
CERT_C-ERR33-c | 从 CERT C 配置中删除。对于其他配置,可以使用 BD-PB-NP 作为替代。 |
CERT_C-FIO41-c | 从 CERT C 配置中删除。对于其他配置,可以使用 MISRA2004-12_2_c 作为替代。 |
CERT_C-FIO41-d | 从 CERT C 配置中删除。对于其他配置,可以使用 MISRA2004-12_2_d 作为替代。 |
CERT_C-FIO41-e | 从 CERT C 配置中删除。对于其他配置,可以使用 CODSTA-123 作为替代。 |
CERT_C-POS54-b | 从 CERT C 配置中删除。对于其他配置,可以使用 CODSTA-122_b 作为替代。 |
CERT_C-POS54-c | 从 CERT C 配置中删除。对于其他配置,可以使用 BD-PB-NP 作为替代。 |
CODSTA-180 | 可以使用 GLOBAL-REUSEDEXTVAR、GLOBAL-REUSEDEXTFUN 作为代替。 |
HICPP-8_2_3-b | 从高完整性 C++ 配置中删除 - 替换为 HICPP-8_2_3-a |
MISRA2012-RULE-1_4_d | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-214 作为替代。 |
MISRA2012-RULE-1_4_e | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-209 作为替代。 |
MISRA2012-RULE-1_4_f | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-210 作为替代。 |
MISRA2012-RULE-1_4_g | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-211 作为替代。 |
MISRA2012-RULE-5_6_b | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 MISRA2004-5_3_b 作为替代。 |
MISRA2012-RULE-5_7_b | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 MISRA2004-5_4_b 作为替代。 |
MISRAC2012-RULE_1_4-d | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-214 作为替代 |
MISRAC2012-RULE_1_4-e | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-209 作为替代。 |
MISRAC2012-RULE_1_4-f | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-210 作为替代。 |
MISRAC2012-RULE_1_4-g | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 CODSTA-211 作为替代。 |
MISRAC2012-RULE_5_6-b | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 MISRA2004-5_3_b 作为替代。 |
MISRAC2012-RULE_5_7-b | 从 MISRA C 2012 配置中删除。对于其他配置,可以使用 MISRA2004-5_4_b 作为替代。 |