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 NameCompiler Acronym
ARM Compiler 6.14armclang_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.50xiccarm_8_50
Metaware DesignWare ARC C/C++ Compiler P-2019.09ccac_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

  • No labels