This release includes the following enhancements: Release date: May 31, 2023 Enhanced Automotive Compliance Pack
In addition, following the introduction of the "MISRA C:2023" document, which consolidates MISRA C:2012 and all amendments, including amendment 4, the built-in "MISRA C 2012" test configuration was renamed to "MISRA C 2023 (MISRA C 2012)". This configuration includes all MISRA C:2023 / MISRA C:2012 with Amendment 4 rules provided by Parasoft C/C++test. Note: to keep compatibility and continuity of the compliance processes, the rule identifiers were not changed, and the "MISRAC2012" prefix will still be used for all MISRA C:2023 / MISRA C:2012 with Amendment 4 rules (e.g. "MISRAC2012-RULE_11_10-a").
Enhanced Static Analysis
Support for PlatformsWindows Server 2022 is now supported by C/C++test. Support for CompilersThe following compilers are now supported:
Additionally, support for Microsoft Visual C++ Compiler 17.4 has been enhanced. See Supported Compilers. Updated Test ConfigurationsMISRA C 2012 has been updated and renamed to MISRA C 2023 (MISRA C 2012). The following test configurations have been updated with new rules:
Additional Updates
Deprecated and Removed SupportRemoved Support for Team ServerTeam Server has been removed and is no longer supported. If your team configurations, rules, and rule mappings are still stored in DTP Team Server, migrate them to a shared location. See Migrating Test Configurations, Rules and Rule Mappings from the Team Server to a Shared Location. Removed Support for PlatformsSupport for the following platform is now removed:
Compilers to Be DeprecatedSupport for the following compilers will be deprecated in future releases:
Deprecated CompilersSupport for the following compilers is deprecated and will be removed in future releases:
Removed Support for CompilersThe following compilers are no longer supported:
Resolved Bugs and FRs
Updates to Rules
|
Rule ID | Header |
---|---|
APSC_DV-002590-l | Avoid signed integer overflows |
AUTOSAR-A2_10_5-c | Identifiers that define objects with internal linkage shall be unique |
AUTOSAR-A2_10_5-d | Identifiers that define functions with internal linkage shall be unique |
AUTOSAR-A3_9_1-c | A typedef should be used in place of the plain char type |
AUTOSAR-A4_7_1-i | Avoid data loss when converting between integer types |
AUTOSAR-A4_7_1-j | Avoid signed integer overflows |
AUTOSAR-A4_7_1-k | Avoid value change when converting between integer types |
AUTOSAR-A7_1_1-b | Declare parameters as const whenever possible |
AUTOSAR-M0_1_3-d | A project should not contain unused variables with external linkage |
AUTOSAR-M0_1_3-e | A project should not contain unused variables with internal linkage |
BD-PB-INTDL | Avoid data loss when converting between integer types |
BD-PB-INTUB | Avoid signed integer overflows |
BD-PB-INTVC | Avoid value change when converting between integer types |
BD-PB-INTWRAP | Avoid wraparounds when performing arithmetic integer operations |
BD-PB-NOTINITAT | Atomic objects shall be properly initialized before being accessed |
BD-TRS-THRDR | There shall be no data races between threads |
BD-TRS-THRDSTR | A thread synchronization object should not be destroyed by a thread |
BD-TRS-THRINIT | A thread synchronization object should not be initialized by a thread |
BD-TRS-THRTHR | A thread should not be created by another thread |
BD-TRS-THRTSS | A thread-specific storage should not be created by a thread |
BD-TRS-TIMEDLOCK | The Standard Library function mtx_timedlock() shall not be invoked on a mutex that does not support timeout |
CERT_C-DCL00-b | Declare parameters as const whenever possible |
CERT_C-EXP20-b | Tests of a value against zero should be made explicit, unless the operand is effectively Boolean |
CERT_C-INT08-b | Avoid signed integer overflows |
CERT_C-INT08-c | Avoid value change when converting between integer types |
CERT_C-INT08-d | Avoid wraparounds when performing arithmetic integer operations |
CERT_C-INT31-p | Avoid value change when converting between integer types |
CERT_C-MSC07-i | Avoid unreachable methods |
CERT_C-MSC12-i | Avoid unreachable methods |
CERT_C-MSC12-j | Avoid conditions that always evaluate to the same value |
CERT_C-MSC12-k | All non-null statements shall either have at least one side-effect however executed or cause control flow to change |
CODSTA-112_b | Pointers to variably-modified array types should not be used |
CODSTA-220_b | The small integer variants of the minimum-width integer constant macros should not be used |
CODSTA-223_b | A typedef should be used in place of the plain char type |
CODSTA-226_a | The value returned by a standard library function that may return an error should be used |
CODSTA-226_b | The standard library functions for which return values need not be checked should be cast to 'void' |
CODSTA-227 | The value returned by a POSIX library function that may return an error should be used |
CODSTA-228_a | Do not call 'getc()', 'putc()', 'getwc()', or 'putwc()' with a stream argument containing assignments, increment or decrement operators |
CODSTA-228_b | Do not call 'getc()', 'putc()', 'getwc()', or 'putwc()' with a stream argument containing function calls or function-like macro calls |
CODSTA-229 | The operands of the remainder operator '%' should be of unsigned integer types |
CODSTA-230 | Do not cast pointers into more strictly aligned pointer types |
CODSTA-231 | The address of an object with thread storage duration shall not be assigned to an object with static storage duration |
CODSTA-232 | The increment (++) and decrement (--) operators should not be mixed with arithmetic operators in an expression |
CODSTA-301 | A conversion shall not remove any 'const', 'volatile' or '_Atomic' qualification from the type pointed to by a pointer |
CODSTA-302 | The right-hand operand of a constant expression shift operator shall lie between zero and one less than the width in bits of the essential type of the left-hand operand |
CODSTA-CPP-108 | A parameter of const reference to a 'cheap to copy' type should be passed by value |
CODSTA-CPP-108_b | Pass small objects with a trivial copy constructor by value |
CODSTA-CPP-109 | A parameter of a type that is not 'cheap to copy' should be passed by reference |
CODSTA-CPP-53_b | Declare parameters as const whenever possible |
CODSTA-MC-101 | Thread objects, thread synchronization objects and thread-specific storage pointers shall not have automatic storage duration |
CODSTA-MC-16 | The '_Atomic' qualifier should not be used with the 'void' type |
CODSTA-MC-17 | Members of atomic objects of structure and union types should not be directly accessed |
CODSTA-MC-18 | A cast shall not remove any '_Atomic' qualification from the type of a pointer |
CODSTA-MC-19 | The value of an expression with atomic type should be independent from thread interleaving |
CODSTA-MC-20 | Only 'memory_order_seq_cst' should be used as an explicit memory order argument |
CODSTA-MC-21 | The second argument passed to the 'mtx_init()' function call should be either 'mtx_plain', 'mtx_timed', 'mtx_plain | mtx_recursive', or 'mtx_timed | mtx_recursive' |
CODSTA-MC-22 | Thread objects, thread synchronization objects, and thread-specific storage pointers shall only be accessed by the appropriate Standard Library functions |
CWE-190-h | Avoid signed integer overflows |
GLOBAL-REUSEDEXTFUN | Identifiers that define functions with external linkage shall be unique |
GLOBAL-REUSEDEXTVAR | Identifiers that define objects with external linkage shall be unique |
GLOBAL-REUSEDSTATFUN | Identifiers that define functions with internal linkage shall be unique |
GLOBAL-REUSEDSTATVAR | Identifiers that define objects with internal linkage shall be unique |
GLOBAL-UNIQUETYPEC | A tag name shall be a unique identifier |
GLOBAL-UNIQUETYPEDEFC | A typedef name shall be a unique identifier |
GLOBAL-UNUSEDEXTVAR | A project should not contain unused variables with external linkage |
HICPP-4_2_2-g | Avoid data loss when converting between integer types |
HICPP-4_2_2-h | Avoid signed integer overflows |
HICPP-4_2_2-i | Avoid value change when converting between integer types |
HICPP-7_1_2-b | Declare parameters as const whenever possible |
METRICS-44 | The number of execution paths in a function should not be higher than 80 |
MISRA2008-0_1_3_d | A project should not contain unused variables with external linkage |
MISRA2008-0_1_3_e | A project should not contain unused variables with internal linkage |
MISRA2008-2_10_5_c | The identifier name of a non-member object or function with static storage duration should not be reused |
MISRA2008-2_10_5_d | The identifier name of a non-member object or function with static storage duration should not be reused |
MISRA2008-7_1_1_b | Declare parameters as const whenever possible |
MISRA2012-DIR-4_1_l | Avoid signed integer overflows |
MISRA2012-DIR-4_1_m | Avoid data loss when converting between integer types |
MISRA2012-DIR-5_1 | Do not use global variable with different locks set |
MISRA2012-DIR-5_1_b | Variable should be used in context of single critical section |
MISRA2012-DIR-5_1_c | There shall be no data races between threads |
MISRA2012-DIR-5_2 | Do not acquire locks in different order |
MISRA2012-DIR-5_3 | A thread should not be created by another thread |
MISRA2012-RULE-11_10 | The _Atomic qualifier shall not be applied to the incomplete type void |
MISRA2012-RULE-12_2_b | The right-hand operand of a constant expression shift operator shall lie between zero and one less than the width in bits of the essential type of the left-hand operand |
MISRA2012-RULE-12_6 | Structure and union members of atomic objects shall not be directly accessed |
MISRA2012-RULE-13_2_h | The value of an expression with atomic type should be independent from thread interleaving |
MISRA2012-RULE-18_10 | Pointers to variably-modified array types should not be used |
MISRA2012-RULE-18_6_c | The address of an object with thread storage duration shall not be assigned to an object with static storage duration |
MISRA2012-RULE-21_25 | Only 'memory_order_seq_cst' should be used as an explicit memory order argument |
MISRA2012-RULE-21_26 | The Standard Library function mtx_timedlock() shall not be invoked on a mutex that does not support timeout |
MISRA2012-RULE-22_11 | Do not join or detach a thread that was previously joined or detached |
MISRA2012-RULE-22_12 | Thread objects, thread synchronization objects, and thread-specific storage pointers shall only be accessed by the appropriate Standard Library functions |
MISRA2012-RULE-22_13 | Thread objects, thread synchronization objects and thread-specific storage pointers shall not have automatic storage duration |
MISRA2012-RULE-22_14_a | A thread synchronization object should not be initialized by a thread |
MISRA2012-RULE-22_14_b | The second argument passed to the 'mtx_init()' function call should be either 'mtx_plain', 'mtx_timed', 'mtx_plain | mtx_recursive', or 'mtx_timed | mtx_recursive' |
MISRA2012-RULE-22_15 | A thread synchronization object should not be destroyed by a thread |
MISRA2012-RULE-22_16 | Do not abandon unreleased locks |
MISRA2012-RULE-22_17 | Do not release a lock that has not been acquired |
MISRA2012-RULE-22_18 | Avoid double locking |
MISRA2012-RULE-22_19 | A condition variable shall be associated with at most one mutex variable |
MISRA2012-RULE-22_20 | A thread-specific storage should not be created by a thread |
MISRA2012-RULE-2_1_h | Avoid unreachable methods |
MISRA2012-RULE-2_8_a | A project should not contain unused variables with external linkage |
MISRA2012-RULE-2_8_b | A project should not contain unused variables with internal linkage |
MISRA2012-RULE-2_8_c | Avoid unused local variables |
MISRA2012-RULE-5_8_b | Identifiers that define functions with external linkage shall be unique |
MISRA2012-RULE-7_6 | The small integer variants of the minimum-width integer constant macros should not be used |
MISRA2012-RULE-9_6 | An initializer using chained designators shall not contain initializers without designators |
MISRA2012-RULE-9_7 | Atomic objects shall be properly initialized before being accessed |
MISRAC2012-DIR_4_1-l | Avoid signed integer overflows |
MISRAC2012-DIR_4_1-m | Avoid data loss when converting between integer types |
MISRAC2012-DIR_5_1-a | Do not use global variable with different locks set |
MISRAC2012-DIR_5_1-b | Variable should be used in context of single critical section |
MISRAC2012-DIR_5_1-c | There shall be no data races between threads |
MISRAC2012-DIR_5_2-a | Do not acquire locks in different order |
MISRAC2012-DIR_5_3-a | A thread should not be created by another thread |
MISRAC2012-RULE_11_10-a | The '_Atomic' qualifier should not be used with the 'void' type |
MISRAC2012-RULE_12_2-b | The right-hand operand of a constant expression shift operator shall lie between zero and one less than the width in bits of the essential type of the left-hand operand |
MISRAC2012-RULE_12_6-a | Members of atomic objects of structure and union types should not be directly accessed |
MISRAC2012-RULE_13_2-h | The value of an expression with atomic type should be independent from thread interleaving |
MISRAC2012-RULE_18_10-a | Pointers to variably-modified array types should not be used |
MISRAC2012-RULE_18_6-c | The address of an object with thread storage duration shall not be assigned to an object with static storage duration |
MISRAC2012-RULE_21_25-a | Only 'memory_order_seq_cst' should be used as an explicit memory order argument |
MISRAC2012-RULE_21_26-a | The Standard Library function mtx_timedlock() shall not be invoked on a mutex that does not support timeout |
MISRAC2012-RULE_22_11-a | Do not join or detach a thread that was previously joined or detached |
MISRAC2012-RULE_22_12-a | Thread objects, thread synchronization objects, and thread-specific storage pointers shall only be accessed by the appropriate Standard Library functions |
MISRAC2012-RULE_22_13-a | Thread objects, thread synchronization objects and thread-specific storage pointers shall not have automatic storage duration |
MISRAC2012-RULE_22_14-a | A thread synchronization object should not be initialized by a thread |
MISRAC2012-RULE_22_14-b | The second argument passed to the 'mtx_init()' function call should be either 'mtx_plain', 'mtx_timed', 'mtx_plain | mtx_recursive', or 'mtx_timed | mtx_recursive' |
MISRAC2012-RULE_22_15-a | A thread synchronization object should not be destroyed by a thread |
MISRAC2012-RULE_22_16-a | Do not abandon unreleased locks |
MISRAC2012-RULE_22_17-a | Do not release a lock that has not been acquired |
MISRAC2012-RULE_22_18-a | Avoid double locking |
MISRAC2012-RULE_22_19-a | Do not use more than one mutex for concurrent waiting operations on a condition variable |
MISRAC2012-RULE_22_20-a | A thread-specific storage should not be created by a thread |
MISRAC2012-RULE_2_1-h | Avoid unreachable methods |
MISRAC2012-RULE_2_8-a | A project should not contain unused variables with external linkage |
MISRAC2012-RULE_2_8-b | A project should not contain unused variables with internal linkage |
MISRAC2012-RULE_2_8-c | Avoid unused local variables |
MISRAC2012-RULE_5_8-b | Identifiers that define functions with external linkage shall be unique |
MISRAC2012-RULE_7_6-a | The small integer variants of the minimum-width integer constant macros should not be used |
MISRAC2012-RULE_9_6-a | An initializer using chained designators shall not contain initializers without designators |
MISRAC2012-RULE_9_7-a | Atomic objects shall be properly initialized before being accessed |
MRM-58_a | The result of the memory allocation function should be cast immediately |
MRM-58_b | The result of the memory allocation function should be cast immediately into a pointer to the allocated type |
OOP-07_c | Ensure that a derived class has at most one base class which is not an interface class |
OPT-43 | A project should not contain unused variables with internal linkage |
PB-80 | An initializer using chained designators shall not contain initializers without designators |
SECURITY-53 | The 'pthread_kill', 'pthread_sigqueue' and 'tgkill' functions should not be used to send signals to threads |
Category ID | Rule IDs |
---|---|
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 Coding Guidelines | 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 |
Flow Analysis | 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 |
Coding Conventions | 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 |
Coding Conventions for C++ | CODSTA-CPP-103, CODSTA-CPP-11, CODSTA-CPP-53, CODSTA-CPP-92 |
Coding Conventions for Modern C++ | CODSTA-MCPP-37 |
Common Weakness Enumeration | 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 |
Exceptions | EXCEPT-17 |
Global Static Analysis | 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 |
Initialization | INIT-18 |
Joint Strike Fighter | 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 (Legacy) | 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 Conventions | NAMING-20, NAMING-47 |
Object Oriented | 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 |
Possible Bugs | PB-41_b, PB-69 |
Security | SECURITY-25 |
STL Best Practices | STL-31, STL-34, STL-35 |
Rule ID | Notes |
---|---|
AUTOSAR-A8_4_7-b | Removed from AUTOSAR C++ 14 configuration - replaced with AUTOSAR-A8_4_7-a. |
CERT_C-ERR33-c | Removed from CERT C configuration. For other configurations, BD-PB-NP can be used as a replacement. |
CERT_C-FIO41-c | Removed from CERT C configuration. For other configurations, MISRA2004-12_2_c can be used as a replacement. |
CERT_C-FIO41-d | Removed from CERT C configuration. For other configurations, MISRA2004-12_2_d can be used as a replacement. |
CERT_C-FIO41-e | Removed from CERT C configuration. For other configurations, CODSTA-123 can be used as a replacement. |
CERT_C-POS54-b | Removed from CERT C configuration. For other configurations, CODSTA-122_b can be used as a replacement. |
CERT_C-POS54-c | Removed from CERT C configuration. For other configurations, BD-PB-NP can be used as a replacement. |
CODSTA-180 | GLOBAL-REUSEDEXTVAR, GLOBAL-REUSEDEXTFUN can be used instead. |
HICPP-8_2_3-b | Removed from High Integrity C++ configuration - replaced with HICPP-8_2_3-a |
MISRA2012-RULE-1_4_d | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-214 can be used as a replacement. |
MISRA2012-RULE-1_4_e | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-209 can be used as a replacement. |
MISRA2012-RULE-1_4_f | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-210 can be used as a replacement. |
MISRA2012-RULE-1_4_g | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-211 can be used as a replacement. |
MISRA2012-RULE-5_6_b | Removed from MISRA C 2012 configuration. For other configurations, MISRA2004-5_3_b can be used as a replacement. |
MISRA2012-RULE-5_7_b | Removed from MISRA C 2012 configuration. For other configurations, MISRA2004-5_4_b can be used as a replacement. |
MISRAC2012-RULE_1_4-d | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-214 can be used as a replacement |
MISRAC2012-RULE_1_4-e | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-209 can be used as a replacement. |
MISRAC2012-RULE_1_4-f | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-210 can be used as a replacement. |
MISRAC2012-RULE_1_4-g | Removed from MISRA C 2012 configuration. For other configurations, CODSTA-211 can be used as a replacement. |
MISRAC2012-RULE_5_6-b | Removed from MISRA C 2012 configuration. For other configurations, MISRA2004-5_3_b can be used as a replacement. |
MISRAC2012-RULE_5_7-b | Removed from MISRA C 2012 configuration. For other configurations, MISRA2004-5_4_b can be used as a replacement. |
For information about this release, see https://docs.parasoft.com/display/CPPTEST20231/Updates+in+2023.1. |