Release date: November 9, 2020
This release includes the following enhancements:
New Suppression Format
You can now create suppressions for static analysis findings in parasoft.suppress files, which can be stored in source control along with your source files. You can create in-file suppressions in the C/C++test GUI or manually add information about findings you want to suppress to suppression files. See Suppressing Findings in the GUI and Defining Suppressions in Suppression Files.
The previous XML-style format used to create suppressions in the GUI is deprecated. You can convert deprecated suppressions to the new in-file format at you IDE startup. See Migrating suppressions.
In addition, you can now configure C/C++test to automatically suppress static rule violations that are detected on lines that match a regular expression pattern. See Defining Line Suppressions Based on Regex Patterns.
Enhanced Static Analysis
We've extended C/C++test's static analysis capabilities with new features to help you focus on the most expedient tasks.
New Scoping Options to Analyze Modified Code on the Current Branch
We've added new options to create file filters that restrict the scope of analysis to files modified on your current working branch. This allows you to focus on identifying and fixing bugs introduced by your recent code changes before the code is merged with the main development stream.
In addition, you can narrow down the scope to locally modified files so that you can analyze the code you updated before checking it into source control.
See Defining File Filters Based on Source Control Data and Creating Custom Test Configurations.
New Report Reference Options for Defining the Code Analysis Baseline
You can now specify a path or URL to a reference report file that will be used as a baseline when performing analysis with C/C++test. This allows you to exclude previously reported findings from the current report in order to focus on the most recently detected code defects. See Configuring Reporting Options.
Enhanced C/C++test Extension for Visual Studio Code
We've extended the capabilities of C/C++test Extension for Visual Studio Code. You can now:
- Import analysis results from Parasoft DTP.
- Create suppressions for static analysis findings in the new in-file format.
The C/C++test extension for Visual Studio Code is available at the Visual Studio Code Marketplace.
Support for Compilers
We've added support for the following compilers:
Compiler Name | Compiler Acronym |
---|---|
ARM Compiler 6.14 | armclang_6_14 |
Clang C/C++ Compiler v 10.0 (x86_64) | clang_10_0 |
GNU GCC 10.x (x86_64) | gcc_10-64 |
IAR Compiler for ARM v. 8.50x | iccarm_8_50 |
Metaware DesignWare ARC C/C++ Compiler P-2019.09 | ccac_2019_09 |
IDE Support
We've added support for the following IDEs:
- Eclipse 2018-12 (4.10)
- Eclipse 2019-03 (4.11)
- Eclipse 2019-06 (4.12)
- Eclipse 2019-09 (4.13)
- Eclipse 2019-12 (4.14)
- Eclipse 2020-03 (4.15)
New and Updated Code Analysis Rules
We've added new static analysis rules to extend coverage of compliance standards. See New Rules and Updated Rules for the lists of new and updated rules.
Updated Test Configurations
We've updated the following test configurations:
- AUTOSAR C++14 Coding Guidelines
- Flow Analysis Aggressive
- Flow Analysis Fast
- Flow Analysis Standard
- High Integrity C++
- Joint Strike Fighter
- MISRA C 1998
- MISRA C 2004
- MISRA C 2012
- MISRA C++ 2008
- Recommended Rules for FDA (C)
- Recommended Rules for FDA (C++)
- SEI CERT C Guidelines
- SEI CERT C Rules
- SEI CERT C++ Rules
Releasing Network License in the IDE
You can now optimize license token distribution by deactivating your network license when you are not actively using C/C++test in your IDE. This releases your license token so that it is available for another user. You can either manually deactivate your license or configure C/C++test to automatically release your license token when idle. See Setting the Parasoft License.
Other Enhancements
- The coverage report has been enhanced to reduce its size and optimize performance. See report.coverage.version.
- We've reduced use of disk space when building data sets required to perform flow-based analysis.
- We have enhanced performance of flow-based analysis for the modern C++.
Deprecated and Removed Support for Environments
Deprecated Support for Compilers
Support for the following compilers is deprecated and will be removed in future releases:
- ARM Compiler 6.6
- Intel C++ Compiler v 18.0
- GCC for Tricore 4.9.x
Deprecated Support for Platforms
Support for the following platforms is deprecated and will be removed in future releases:
- Windows Server 2008
- Windows Server 2012
Removed Support for IDEs
Support for the following IDEs is removed:
- Eclipse 3.8
- Visual Studio 2008
- Visual Studio 2010
Removed Support for Control Management Systems
Support for the following SCMs is removed:
- AccuRev
- ClearCase
- CVS
- Serena Dimensions
- StarTeam
- Synergy CM
- Visual Source Safe
Resolved Bugs and FRs
Bug/FR ID | Description |
---|---|
CPP-42547 | CERT-C-MSC04 should not report on '//' that is a part of URL |
CPP-44289 | Add buttons for expanding/collapsing all the test case Steps |
CPP-44888 | Improve accuracy of MISRA2004-5_1 |
CPP-44911 | CERT_C-INT34-a (MISRA-038) reports false positive on correct shift operation |
CPP-44935 | CODSTA-125 (CERT_CPP-EXP57-b) reports false positives on conversion from nullptr |
CPP-45230 | cpptestcc1 crashes when called by cpptestcli with very long command line |
CPP-45349 | AUTOSAR-A7_1_3-a false positive |
CPP-45372 | MISRA2008-5_0_6_a false positive |
CPP-45430 | PREPROC-10 (MISRA2008-16_2_1_b) doesn't detect #endif directives when #ifndef is not used |
CPP-45452 | HICPP-12_5_2-a (AUTOSAR-A12_7_1-a) reports violation on constructor that can not be defaulted |
CPP-45500 | more than one instance of overloaded function "ioctl" has "C" linkage |
CPP-45501 | Coverage: Functions defined in unnamed namespace may occur more than once in coverage view |
CPP-45505 | error: identifier "r9" is undefined static __no_init uint32_t __iar_SB @ r9; |
CPP-45510 | CODSTA-CPP-53 reports violation on struct variable |
CPP-45514 | JSF-041 (METRICS-26) should ignore parasoft-begin-suppress, parasoft-end-suppress comments |
CPP-45516 | Improve implementation of rule JSF-046 |
CPP-45748 | Brace elision do not work with GCC and Clang |
CPP-45769 | MISRA2004-8_7 (JSF-136_a) should not report on const variables defined in headers (C++) |
CPP-45796 | MISRA-005 (JSF-009) reports violation when "@" character is used in project name |
CPP-45833 | JSF-206 (MISRA2004-20_4) will allow use of 'new' and 'delete' operator member functions |
CPP-45834 | Explicit constructor used implicitly in auto generated stub |
CPP-45855 | Error: pack "_UElements" does not have the same number of elements as "_Elements" |
CPP-45859 | Error: assertion failed at: "scope_stk.c", line 5053 in push_template_instantiation_scope |
CPP-45866 | MISRA2004-14_8 (MISRAC2012-RULE_15_6-a) reports false positive violation of for-range loop |
CPP-45877 | Incorrect handling of comma separated preprocessor definition value |
CPP-45878 | INIT-05 reports violation on ranged based for loop |
CPP-45880 | GCC allows inconsistent exception specification for system functions |
CPP-45912 | Improve mapping for JSF-051 |
CPP-45917 | Improve CODSTA-61 (JSF-194, MISRA2008-6_4_6) to better handle multiple enumerators with same value |
CPP-45965 | Compile error for instrumented code with overloadable attribute |
CPP-45975 | PB-50 is not aware about %* in scanf |
CPP-45978 | Rule MISRA2004-15_1 (MISRAC2012-RULE_16_2-a) reports false positive when between 'switch' statement and its body is preprocessor directive |
CPP-45979 | MISRA2004-17_6_b does not trigger when address of local object is assigned to non-static member |
CPP-45992 | Exception during testing solution with Solution Folder |
CPP-46015 | EDG incompatible declaration of built-in functions: __builtin_operator_new and __builtin_operator_delete |
CPP-46018 | Cannot load violations for MISRAC2012-DIR_4_7-a (BD-PB-CHECKRET) rule |
CPP-46031 | STL-37 (AUTOSAR-A18_1_1-a) should not report violations on the use of '_func_' macro |
CPP-46137 | CODSTA-13 (JSF-171) does not report violations on comparisons of expressions of pointer type |
CPP-46138 | PREPROC-06 reports a violation on header file "sensors/sensor.h" |
CPP-46139 | Generating tests for vector<uint16_t> causes internal error: assertion failed at: "exprutil.c" |
CPP-46142 | Incorrect mapping for CERT_C-FI034 |
CPP-46159 | __builtin_launder used in libc++ has different return type in C++17 |
CPP-46173 | False positive for CODSTA-CPP-53 and JSF-117.1 |
CPP-46177 | MISRA2004-14_2 (MISRAC2012-RULE_2_2-a) reports false positive when cast is used in array dimension of function parameter |
CPP-46186 | False positive for MISRA2004-17_6_a |
CPP-46200 | IAR: ability to handle long linker command lines |
CPP-46219 | MISRA2008-5_0_1_f - possible bug on one of two implemented function where more than one volatile type exists |
CPP-46266 | CODSTA-83 reports false positive when integer constants are cast in loop condition |
CPP-46284 | Remove mapping SECURITY-19 to CERT_C-POS35-a |
CPP-46317 | class "boost::units::dimensionless_type" has no member "item" |
CPP-46328 | Error: static and nonstatic member functions with same parameter types cannot be overloaded |
CPP-46334 | AUTOSAR A3-3-2 reports violation on non-static class member variable |
CPP-46404 | HICPP-9_1_5-a (AUTOSAR-A10_3_3-a) reports violations on virtual functions declared as 'final' |
CPP-46466 | Improve mapping for JSF-111 |
CPP-46520 | False positive for MISRAC2012-RULE_14_2-* rules on std::optional |
CPP-46549 | Enable support for standard attributes in C++98/03 modes for GCC |
FA-7538 | BD-PB-ARRAY reports violation in static function |
FA-7588 | BD-PB-CC false positive when the analysis reaches its depth limits. |
FA-7814 | BD-PB-CC false positive |
FA-7855 | BD-PB-ARRAY false negative when multi-dimensional array is used as struct field |
FA-7884 | BD-PB-NOTINIT - false negative when CString.Format() was used without initialization |
FA-7907 | BD-API-NEGPARAM should not report violation on neg offset for fseek |
FA-7909 | BD-PB-BADSHIFT flags violation on uint64_t variable |
FA-7913 | BD-PB-NP false positive when pointer is assigned address of variable from array |
FA-7916 | BD-PB-OVERFNZT reports a violation on char arrays |
FA-7917 | BD-PB-OVERFWR false positive when destination buffer is pointer to vector element |
FA-7918 | BD-PB-ZERO false positive with std::abs |
FA-7919 | BD-PB-OVERFNZT false positive when buffer contents are assigned through an alias pointer. |
FA-7933 | BD-PB-OVERFNZT reports violation on strcpy() |
FA-7934 | BD-PB-ARRAY does not report violations when macro is used |
FA-7938 | BD-PB-CC false positive caused by inaccurate floating-point value deduction. |
FA-7939 | NullPointerException in DependencyFinder.processCfe() when template variable is captured by lambda |
FA-7991 | False positives for MISRAC2012-RULE_9_1-a and MISRAC2012-DIR_4_1-a (enum with underlying "char" type incorrectly treated as "signed char" for iccarm) |
FA-7996 | BD-PB-SUBSEQMOVE and BD-PB-SUBSEQFRWD false negatives with armclamg 6.9 |
FA-7997 | BD-PB-ERRNO reports a false positive when using QNX 5.x (32 bit) |
FA-8009 | BD-PB-CC reports violation at read os call |
New Rules
Rule ID | Rule Description |
---|---|
BD-PB-PTRSUB | Do not subtract two pointers that do not address elements of the same array |
CERT_C-ARR36-b | Do not compare two unrelated pointers |
CERT_CPP-CTR54-c | Do not subtract two pointers that do not address elements of the same array |
CODSTA-13_b | Pointer subtraction shall only be applied to pointers that address elements of the same array |
CODSTA-CPP-105 | Define special members as =default when the behavior is equivalent to the compiler's behavior |
CODSTA-MCPP-51 | Use const container calls when the result is immediately converted to a const iterator |
CODSTA-MCPP-52 | Do not introduce virtual functions in a final class |
FORMAT-47_a | Place CV-qualifiers on the right hand side of the type they apply to |
FORMAT-47_b | CV-qualifiers shall be placed on the right hand side of the type that is a typedef or a using name |
JSF-046_a | User-specified C++ external identifiers should differ in the first 64 characters |
JSF-046_b | User-specified C++ internal identifiers should differ from external identifiers in the first 64 characters |
JSF-046_c | User-specified C++ internal identifiers declared in the same scope should differ in the first 64 characters |
JSF-051 | All letters contained in function and variable names will be composed entirely of lowercase letters |
MISRA2004-5_1_a | User-specified C external identifiers should differ in the first 31 characters |
MISRA2004-5_1_b | User-specified C internal identifiers should differ from external identifiers in the first 31 characters |
MISRA2004-5_1_c | User-specified C internal identifiers declared in the same scope should differ in the first 31 characters |
NAMING-54 | Use visually distinct identifiers |
PORT-34_a | User-specified C++ external identifiers should differ in the first 64 characters |
PORT-34_b | User-specified C++ internal identifiers should differ from external identifiers in the first 64 characters |
PORT-34_c | User-specified C++ internal identifiers declared in the same scope should differ in the first 64 characters |
PORT-35_a | User-specified C external identifiers should differ in the first 31 characters |
PORT-35_b | User-specified C internal identifiers should differ from external identifiers in the first 31 characters |
PORT-35_c | User-specified C internal identifiers declared in the same scope should differ in the first 31 characters |
PORT-36_a | The names of identifiers should not be longer than 31 characters |
PORT-36_b | The names of macro identifiers should not be longer than 31 characters |
Updated Rules
Category ID | Rule IDs |
---|---|
AUTOSAR C++14 Coding Guidelines | AUTOSAR-A0_1_1-a, AUTOSAR-A10_3_3-a, AUTOSAR-A12_7_1-a, AUTOSAR-A12_8_3-a, AUTOSAR-A15_0_2-a, AUTOSAR-A15_1_4-a, AUTOSAR-A15_4_5-a, AUTOSAR-A16_0_1-a, AUTOSAR-A18_1_1-a, AUTOSAR-A18_1_6-a, AUTOSAR-A18_5_2-a, AUTOSAR-A18_9_4-a, AUTOSAR-A20_8_5-a, AUTOSAR-A23_0_1-a, AUTOSAR-A27_0_2-a, AUTOSAR-A27_0_2-b, AUTOSAR-A2_3_1-a, AUTOSAR-A3_3_2-a, AUTOSAR-A3_8_1-b, AUTOSAR-A3_8_1-c, AUTOSAR-A5_0_2-a, AUTOSAR-A5_1_1-a, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-c, AUTOSAR-A5_3_2-a, AUTOSAR-A6_4_1-a, AUTOSAR-A6_5_3-a, AUTOSAR-A6_5_4-b, AUTOSAR-A6_6_1-a, AUTOSAR-A7_1_1-a, AUTOSAR-A7_1_3-a, AUTOSAR-A7_1_5-a, AUTOSAR-A7_1_7-a, AUTOSAR-A8_4_3-a, AUTOSAR-A8_4_3-b, AUTOSAR-A8_4_9-a, AUTOSAR-A8_5_0-a, AUTOSAR-M0_1_1-c, AUTOSAR-M0_1_1-f, AUTOSAR-M0_1_1-g, AUTOSAR-M0_1_2-a, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_2-c, AUTOSAR-M0_1_2-n, AUTOSAR-M0_1_2-o, AUTOSAR-M0_1_2-p, AUTOSAR-M0_1_2-q, AUTOSAR-M0_1_2-s, AUTOSAR-M0_1_2-x, AUTOSAR-M0_1_2-y, AUTOSAR-M0_1_9-a, AUTOSAR-M0_3_1-a, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-c, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-f, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_1-i, AUTOSAR-M15_1_1-a, AUTOSAR-M15_1_2-a, AUTOSAR-M3_3_2-a, AUTOSAR-M3_4_1-b, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_16-b, AUTOSAR-M5_0_17-a, AUTOSAR-M5_0_18-a, AUTOSAR-M5_0_2-a, AUTOSAR-M5_0_6-a, AUTOSAR-M6_4_2-a, AUTOSAR-M6_4_3-a, AUTOSAR-M6_4_3-b, AUTOSAR-M6_4_3-c, AUTOSAR-M6_4_3-d, AUTOSAR-M6_4_3-e, AUTOSAR-M6_4_4-a, AUTOSAR-M6_4_5-a, AUTOSAR-M6_4_6-a, AUTOSAR-M6_4_7-a, AUTOSAR-M6_5_3-a, AUTOSAR-M6_5_4-a, AUTOSAR-M6_5_5-a, AUTOSAR-M6_5_6-a, AUTOSAR-M7_1_2-c, AUTOSAR-M7_5_1-a, AUTOSAR-M7_5_2-a, AUTOSAR-M8_5_2-a |
Flow Analysis | BD-API-NEGPARAM, BD-API-STRSIZE, BD-PB-ARRAY, BD-PB-BADSHIFT, BD-PB-CC, BD-PB-ERRNO, BD-PB-NOTINIT, BD-PB-NP, BD-PB-OVERFNZT, BD-PB-OVERFRD, BD-PB-OVERFWR, BD-PB-PTRARR, BD-PB-PTRCMP, BD-PB-SUBSEQFRWD, BD-PB-SUBSEQMOVE, BD-PB-VOVR, BD-RES-LEAKS, BD-TRS-MLOCK, BD-TRS-ORDER |
SEI CERT C | CERT_C-API01-a, CERT_C-ARR30-a, CERT_C-ARR36-a, CERT_C-ARR38-a, CERT_C-ARR38-b, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON30-a, CERT_C-CON41-a, CERT_C-CON43-a, CERT_C-DCL00-a, CERT_C-DCL02-a, CERT_C-DCL10-a, CERT_C-DCL11-a, CERT_C-DCL11-b, CERT_C-DCL11-c, CERT_C-DCL11-f, CERT_C-DCL22-a, CERT_C-DCL30-a, CERT_C-DCL30-b, CERT_C-DCL36-a, CERT_C-DCL41-a, CERT_C-ENV01-c, CERT_C-ERR30-a, CERT_C-ERR32-a, CERT_C-ERR33-c, CERT_C-EXP08-b, CERT_C-EXP33-a, CERT_C-EXP34-a, CERT_C-FIO22-a, CERT_C-FIO34-a, CERT_C-FIO37-a, CERT_C-FIO42-a, CERT_C-FIO47-a, CERT_C-FIO47-b, CERT_C-FIO47-c, CERT_C-FIO47-f, CERT_C-FLP30-a, CERT_C-FLP34-a, CERT_C-INT10-a, CERT_C-INT31-a, CERT_C-INT31-b, CERT_C-INT31-d, CERT_C-INT31-e, CERT_C-INT31-f, CERT_C-INT31-i, CERT_C-INT31-j, CERT_C-INT31-k, CERT_C-INT34-a, CERT_C-MEM00-e, CERT_C-MEM01-b, CERT_C-MEM01-c, CERT_C-MEM01-d, CERT_C-MEM12-a, CERT_C-MEM31-a, CERT_C-MSC01-a, CERT_C-MSC01-b, CERT_C-MSC04-b, CERT_C-MSC07-a, CERT_C-MSC07-d, CERT_C-MSC07-e, CERT_C-MSC09-a, CERT_C-MSC12-a, CERT_C-MSC12-d, CERT_C-MSC12-e, CERT_C-MSC17-a, CERT_C-MSC19-a, CERT_C-MSC19-b, CERT_C-POS30-a, CERT_C-POS51-a, CERT_C-POS54-c, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR31-b, CERT_C-STR32-a, CERT_C-WIN30-a |
SEI CERT C++ | CERT_CPP-CON53-a, CERT_CPP-CTR54-b, CERT_CPP-ERR56-a, CERT_CPP-ERR57-a, CERT_CPP-EXP53-a, CERT_CPP-EXP54-b, CERT_CPP-EXP54-c, CERT_CPP-EXP57-b, CERT_CPP-EXP63-a, CERT_CPP-FIO51-a, CERT_CPP-STR50-b, CERT_CPP-STR50-c, CERT_CPP-STR51-a |
Coding Conventions | CODSTA-04, CODSTA-08, CODSTA-119, CODSTA-125, CODSTA-13, CODSTA-149, CODSTA-161_a, CODSTA-161_b, CODSTA-161_d, CODSTA-161_e, CODSTA-161_f, CODSTA-163_b, CODSTA-164_a, CODSTA-164_b, CODSTA-165_a, CODSTA-165_b, CODSTA-168, CODSTA-169_b, CODSTA-169_c, CODSTA-18, CODSTA-194, CODSTA-23, CODSTA-26, CODSTA-32, CODSTA-33, CODSTA-35, CODSTA-41, CODSTA-53, CODSTA-54, CODSTA-56, CODSTA-61, CODSTA-64, CODSTA-79, CODSTA-81, CODSTA-82, CODSTA-83, CODSTA-85, CODSTA-98 |
Coding Conventions for C++ | CODSTA-CPP-15, CODSTA-CPP-43, CODSTA-CPP-53, CODSTA-CPP-64, CODSTA-CPP-71, CODSTA-CPP-72, CODSTA-CPP-73 |
Coding Conventions for Modern C++ | CODSTA-MCPP-16_e, CODSTA-MCPP-27, CODSTA-MCPP-32, CODSTA-MCPP-40 |
Comments | COMMENT-11 |
Common Weakness Enumeration | CWE-119-a, CWE-119-d, CWE-119-e, CWE-125-a, CWE-125-c, CWE-362-e, CWE-476-a, CWE-704-c, CWE-772-a, CWE-787-a, CWE-787-d, CWE-835-a |
Exceptions | EXCEPT-11, EXCEPT-12, EXCEPT-22 |
Formatting | FORMAT-06 |
High Integrity C++ | HICPP-16_1_1-b, HICPP-16_1_2-a, HICPP-17_3_3-a, HICPP-18_2_2-a, HICPP-18_3_2-a, HICPP-1_2_1-a, HICPP-1_2_1-d, HICPP-1_2_1-e, HICPP-1_2_1-i, HICPP-1_2_2-a, HICPP-3_4_1-a, HICPP-3_4_2-a, HICPP-3_5_1-c, HICPP-3_5_1-d, HICPP-4_2_2-f, HICPP-5_1_1-a, HICPP-5_2_1-a, HICPP-5_2_1-c, HICPP-6_1_2-a, HICPP-6_1_2-b, HICPP-6_1_3-a, HICPP-6_1_4-a, HICPP-6_1_4-b, HICPP-6_2_2-a, HICPP-6_2_3-a, HICPP-6_2_4-a, HICPP-6_3_1-a, HICPP-6_4_1-b, HICPP-7_1_2-a, HICPP-8_4_1-a, HICPP-8_4_2-a |
Initialization | INIT-03, INIT-05, INIT-16 |
Joint Strike Fighter | JSF-009, JSF-028, JSF-041, JSF-042, JSF-052, JSF-111, JSF-111_a, JSF-117, JSF-117.1, JSF-125_a, JSF-136_a, JSF-138_a, JSF-142_b, JSF-144, JSF-151, JSF-171, JSF-173, JSF-186_a, JSF-186_d, JSF-186_e, JSF-187, JSF-188, JSF-189, JSF-191, JSF-191_a, JSF-192, JSF-193, JSF-194, JSF-195, JSF-196, JSF-197, JSF-199, JSF-201, JSF-206 |
Metrics | METRICS-02, METRICS-26 |
MISRA C 1998 | MISRA-005, MISRA-024, MISRA-055, MISRA-058, MISRA-065 |
MISRA C 2004 | MISRA2004-10_1_d, MISRA2004-12_1_a, MISRA2004-13_2, MISRA2004-13_4, MISRA2004-13_5, MISRA2004-13_6, MISRA2004-13_7_aa, MISRA2004-13_7_ab, MISRA2004-13_7_ac, MISRA2004-13_7_ad, MISRA2004-13_7_ae, MISRA2004-13_7_af, MISRA2004-13_7_ag, MISRA2004-13_7_ah, MISRA2004-13_7_z, MISRA2004-14_10, MISRA2004-14_1_a, MISRA2004-14_1_d, MISRA2004-14_1_e, MISRA2004-14_2, MISRA2004-14_4, MISRA2004-14_6, MISRA2004-15_0_a, MISRA2004-15_0_b, MISRA2004-15_1, MISRA2004-15_2, MISRA2004-15_2_b, MISRA2004-15_3, MISRA2004-15_4, MISRA2004-15_4_b, MISRA2004-15_5, MISRA2004-17_3, MISRA2004-17_6_a, MISRA2004-17_6_b, MISRA2004-20_4, MISRA2004-8_7, MISRA2004-9_2 |
MISRA C++ 2008 | MISRA2008-0_1_1_a, MISRA2008-0_1_1_d, MISRA2008-0_1_1_e, MISRA2008-0_1_2_aa, MISRA2008-0_1_2_b, MISRA2008-0_1_2_c, MISRA2008-0_1_2_d, MISRA2008-0_1_2_e, MISRA2008-0_1_2_f , MISRA2008-0_1_2_g, MISRA2008-0_1_2_h, MISRA2008-0_1_2_i, MISRA2008-0_1_2_rz, MISRA2008-0_1_6, MISRA2008-0_1_9, MISRA2008-0_3_1_a, MISRA2008-0_3_1_b, MISRA2008-0_3_1_e, MISRA2008-0_3_1_g, MISRA2008-0_3_1_h, MISRA2008-0_3_1_i, MISRA2008-0_3_1_j, MISRA2008-15_1_1, MISRA2008-15_1_2, MISRA2008-16_2_1_b, MISRA2008-18_4_1, MISRA2008-3_3_2, MISRA2008-3_4_1_b, MISRA2008-5_0_13, MISRA2008-5_0_16_a, MISRA2008-5_0_16_b, MISRA2008-5_0_17, MISRA2008-5_0_18, MISRA2008-5_0_2_a, MISRA2008-5_0_6_a, MISRA2008-6_4_2, MISRA2008-6_4_3_a, MISRA2008-6_4_3_b, MISRA2008-6_4_3_c, MISRA2008-6_4_3_d, MISRA2008-6_4_3_e, MISRA2008-6_4_4, MISRA2008-6_4_5, MISRA2008-6_4_6, MISRA2008-6_4_7, MISRA2008-6_4_8, MISRA2008-6_5_3, MISRA2008-6_5_4, MISRA2008-6_5_5, MISRA2008-6_5_6, MISRA2008-6_6_4, MISRA2008-7_1_1, MISRA2008-7_1_2_b, MISRA2008-7_5_1, MISRA2008-7_5_2_a, MISRA2008-7_5_2_b, MISRA2008-8_5_2 |
MISRA C 2012 (Legacy) | MISRA2012-DIR-4_12, MISRA2012-DIR-4_13_a, MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_b, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_g, MISRA2012-DIR-4_1_h, MISRA2012-DIR-4_1_i, MISRA2012-DIR-4_1_j, MISRA2012-RULE-10_1_a, MISRA2012-RULE-10_1_b, MISRA2012-RULE-10_1_d, MISRA2012-RULE-10_1_e, MISRA2012-RULE-10_1_f, MISRA2012-RULE-10_3_b, MISRA2012-RULE-10_4_a, MISRA2012-RULE-10_4_b, MISRA2012-RULE-10_5_a, MISRA2012-RULE-10_5_b, MISRA2012-RULE-11_2, MISRA2012-RULE-14_2_a, MISRA2012-RULE-14_2_c, MISRA2012-RULE-14_2_d, MISRA2012-RULE-14_3_q, MISRA2012-RULE-14_3_r, MISRA2012-RULE-14_3_s, MISRA2012-RULE-14_3_t, MISRA2012-RULE-14_3_u, MISRA2012-RULE-14_3_v, MISRA2012-RULE-14_3_w, MISRA2012-RULE-14_3_x, MISRA2012-RULE-14_3_y, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-14_4, MISRA2012-RULE-15_1, MISRA2012-RULE-15_4, MISRA2012-RULE-15_7, MISRA2012-RULE-16_1_a, MISRA2012-RULE-16_1_b, MISRA2012-RULE-16_1_c, MISRA2012-RULE-16_1_d, MISRA2012-RULE-16_1_e, MISRA2012-RULE-16_1_f, MISRA2012-RULE-16_1_h, MISRA2012-RULE-16_2, MISRA2012-RULE-16_3_a, MISRA2012-RULE-16_3_b, MISRA2012-RULE-16_4_a, MISRA2012-RULE-16_4_b, MISRA2012-RULE-16_6, MISRA2012-RULE-16_7_a, MISRA2012-RULE-16_7_b, MISRA2012-RULE-18_1_a, MISRA2012-RULE-18_1_c, MISRA2012-RULE-18_2, MISRA2012-RULE-18_3, MISRA2012-RULE-18_6_a, MISRA2012-RULE-18_6_b, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_d, MISRA2012-RULE-1_3_e, MISRA2012-RULE-1_3_m, MISRA2012-RULE-1_3_n, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_18, MISRA2012-RULE-21_3, MISRA2012-RULE-22_1, MISRA2012-RULE-22_10, MISRA2012-RULE-22_8, MISRA2012-RULE-22_9, MISRA2012-RULE-2_1_a, MISRA2012-RULE-2_1_d, MISRA2012-RULE-2_1_e, MISRA2012-RULE-2_2_a, MISRA2012-RULE-2_2_b, MISRA2012-RULE-3_1_b, MISRA2012-RULE-8_9, MISRA2012-RULE-9_1, MISRA2012-RULE-9_2 |
MISRA C 2012 | MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-g, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_1-i, MISRAC2012-DIR_4_1-j, MISRAC2012-DIR_4_12-a, MISRAC2012-DIR_4_13-a, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_10_1-b, MISRAC2012-RULE_10_1-d, MISRAC2012-RULE_10_1-e, MISRAC2012-RULE_10_1-f, MISRAC2012-RULE_10_3-b, MISRAC2012-RULE_10_4-a, MISRAC2012-RULE_10_4-b, MISRAC2012-RULE_10_5-a, MISRAC2012-RULE_10_5-b, MISRAC2012-RULE_11_2-a, MISRAC2012-RULE_14_2-a, MISRAC2012-RULE_14_2-c, MISRAC2012-RULE_14_2-d, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_14_3-q, MISRAC2012-RULE_14_3-r, MISRAC2012-RULE_14_3-s, MISRAC2012-RULE_14_3-t, MISRAC2012-RULE_14_3-u, MISRAC2012-RULE_14_3-v, MISRAC2012-RULE_14_3-w, MISRAC2012-RULE_14_3-x, MISRAC2012-RULE_14_3-y, MISRAC2012-RULE_14_4-a, MISRAC2012-RULE_15_1-a, MISRAC2012-RULE_15_4-a, MISRAC2012-RULE_15_7-a, MISRAC2012-RULE_16_1-a, MISRAC2012-RULE_16_1-b, MISRAC2012-RULE_16_1-c, MISRAC2012-RULE_16_1-d, MISRAC2012-RULE_16_1-e, MISRAC2012-RULE_16_1-f, MISRAC2012-RULE_16_1-h, MISRAC2012-RULE_16_2-a, MISRAC2012-RULE_16_3-a, MISRAC2012-RULE_16_3-b, MISRAC2012-RULE_16_4-a, MISRAC2012-RULE_16_4-b, MISRAC2012-RULE_16_6-a, MISRAC2012-RULE_16_7-a, MISRAC2012-RULE_16_7-b, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_18_1-c, MISRAC2012-RULE_18_2-a, MISRAC2012-RULE_18_3-a, MISRAC2012-RULE_18_6-a, MISRAC2012-RULE_18_6-b, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-d, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_1_3-m, MISRAC2012-RULE_1_3-n, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_18-a, MISRAC2012-RULE_21_3-a, MISRAC2012-RULE_22_1-a, MISRAC2012-RULE_22_10-a, MISRAC2012-RULE_22_8-a, MISRAC2012-RULE_22_9-a, MISRAC2012-RULE_2_1-a, MISRAC2012-RULE_2_1-d, MISRAC2012-RULE_2_1-e, MISRAC2012-RULE_2_2-a, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_3_1-b, MISRAC2012-RULE_8_9-a, MISRAC2012-RULE_9_1-a, MISRAC2012-RULE_9_2-a |
Memory and Resource Management | MRM-09, MRM-10, MRM-11, MRM-51 |
Naming Conventions | NAMING-04, NAMING-42, NAMING-44 |
Optimizations | OPT-14, OPT-20, OPT-21, OPT-22, OPT-39 |
OWASP Top 10 Most Critical Web Application Security Risks (2017) | OWASP2017-A6-c |
Possible Bugs | PB-13, PB-45, PB-46, PB-47, PB-50 |
Portability | PORT-10, PORT-25 |
Preprocessor | PREPROC-06, PREPROC-10 |
STL Best Practices | STL-04, STL-10, STL-12, STL-37 |
Removed Rules
The following rules have been removed to enhance the accuracy of results:
Category ID | Rule IDs |
---|---|
SEI CERT C | CERT_C-POS35-a |
Joint Strike Fighter | JSF-046, JSF-051_a, JSF-051_b, JSF-051_c, JSF-051_d, JSF-051_e |
MISRA C 2004 | MISRA2004-5_1 |