Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

New and Updated Code Analysis Rules

New code analysis rules have been added to extend coverage of compliance standards. See New Rules and Updated Rules for the lists of new and updated rules.

Updated Test Configurations

  • MISRA C:2012 rule set has been extended with new and updated rules from the "MISRA C:2012 Amendment 4".

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").

Additional Updates

  • OIDC support for Google authentication added.
  • Support for default parameters of cloned and mapped rules defined in rulemap.xml has been added. The values are visible in the Test Configuration Editor in the IDE.
  • General improvements to the Flow Analysis engine may cause some differences in the violations reported by Flow Analysis rules compared to the previous version.
  • Improved look and feel when running in dark theme for Eclipse and Visual Studio.

Deprecated and Removed Support

Removed Support for Team Server

Team 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 Platforms

Support for the following platform is now removed:

  • Windows Server 2016

Compilers to Be Deprecated

Support for the following compilers will be deprecated in future releases:

  • 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
  • Microchip MPLAB C30 Compiler for dsPIC v3.2x
  • Microchip MPLAB C32 Compiler for PIC32 v2.0x
  • 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

Deprecated Compilers

Support for the following compilers is deprecated and will be removed in future releases:

  • 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

Removed Support for Compilers

The following compilers are no longer supported:

  • ARM Clang 6.6
  • ARM GCC 4.5
  • ARM RealView 4.1
    • HIS Source Code Metrics configuration has been extended with Number of paths (PATH) / METRICS-44.

    Enhanced Static Analysis

    • Performance of the Flow Analysis engine has been enhanced.
    • General enhancements to the accuracy of static analysis rules.
    • New code analysis rules have been added to extend coverage of compliance standards. See New Rules and Updated Rules for the lists of new and updated rules.

    Support for Platforms

    Windows Server 2022 is now supported by C/C++test. 

    Support for Compilers

    The following compilers are now supported:

    Scroll Ignore
    scroll-pdftrue
    scroll-officetrue
    scroll-chmtrue
    scroll-docbooktrue
    scroll-eclipsehelptrue
    scroll-epubtrue
    scroll-htmltrue

    This release includes the following enhancements:

    Table of Contents
    maxLevel1

    Release date: May 31, 2023

    Enhanced Automotive Compliance Pack

    Enhanced Security Compliance Pack

    Enhanced Static Analysis

    Support for Platforms

    Support for Compilers

    The following compilers are now supported:

    Compiler NameCompiler Identifier
    Compiler NameCompiler Identifier
    GNU GCC 12 for x86-64gcc_12-64
    GNU GCC 12 for aarch64/arm64gcc_12-aarch64
    GNU GCC 11 for aarch32/armgcc_11-aarch32
    GNU GCC 10 for aarch32/armgcc_10-aarch32
    GNU GCC 9 for aarch64/arm64gcc_9-aarch64
    GNU GCC 9 for aarch32/armgcc_9-aarch32
    GNU GCC 8 for aarch32/armgcc_8-aarch32
    Hexagon 8.6hexagon-clang_8_6
    WindRiver Clang/ARM 9.0wrclang_9_0-x86_64, wrclang_9_0-aarch32

    Additionally, support for Microsoft Visual C++ Compiler 17.4 has been enhanced.

    See Supported Compilers.

    Updated Test Configurations

    MISRA C 2012 has been updated and renamed to MISRA C 2023 (MISRA C 2012).

    The following test configurations have been updated with new rules:

    • AUTOSAR C++14 Coding Guidelines
    • 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

    Additional Updates

    • Integration with Bazel builds for Linux is now supported. See Integrating with Bazel.
    • Improved look and feel when running in dark theme for Eclipse and Visual Studio IDE.

    Deprecated and Removed Support

    Removed Support for Team Server

    Team 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 Platforms

    Support for the following platform is now removed:

    • Windows Server 2016

    Compilers to Be Deprecated

    Support for the following compilers will be deprecated in future releases:

    ARM RealView 4.1 for uVision

    • Altium TASKING Vx-toolset for TriCore C/C++ Compiler 46.2
    • Clang 6.0
    • Altium TASKING Vx-toolset for TriCore FR Family SOFTUNE 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 Native v. 5.1
    • 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
    • Wind River Diab 5.6.x

    Resolved Bugs and FRs

    Bug/FR ID

    DescriptionXT-40717The same suppressions reason reported for all comment suppressions in single lineXT-40748Incorrect behavior of "wait for tokens" optionXT-40970Applying OIDC settings does not force authentication when refresh token is invalidXT-41092Relative paths to rule links are resolved to absolute making reports and rule docs non-portable
    • 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

    Deprecated Compilers

    Support for the following compilers is deprecated and will be removed in future releases:

    • 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

    Removed Support for Compilers

    The following compilers are no longer supported:

    • 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

    Resolved Bugs and FRs

    Bug/FR ID

    Description

    CPP-39580

    [static] Rules MISRA2012-RULE-5_6 and MISRA2012-RULE-5_7 should be global rules

    CPP-40072

    [rulewizard] Add support for constexpr if

    CPP-42545

    [static] CERT-C-FIO41: existing mapping is too general

    CPP-42649

    [static] Improve mapping for AUTOSAR A2-10-5, MISRA2008 2-10-5 and MISRA C 2012 Rule 5.8 and 5.9

    CPP-43932

    [static] HIS metric - number of paths (PATH)

    CPP-44741

    [engine] Constexpr c-tor requires member initialization in non-constant expression context

    CPP-44752

    [static] CODSTA-145 (CERT_C-POS30-c) could have an exception for buffers initialized by '\0'

    CPP-44917

    [static] Improve mapping for CERT MEM02

    CPP-45439

    [static] AUTOSAR-A2_10_5_a should not check static local variables

    CPP-46011

    [static] Improve mapping for CERT-ERR33 and CERT-POS54

    CPP-46408

    [static] CERT_C-CON33-a: review list of functions in SECURITY-25 rule

    CPP-47128

    [static] MISRAC2012-RULE_5_9-a reports incorrect violation on objects with no linkage

    CPP-47470

    [static] CODSTA-127 and CODSTA-127_b can be extended to detect conversions from array type to integer type

    CPP-47508

    [static] MISRA2008-5_0_10 rule does not follow exception from MISRA C++ Rule 5-0-10

    CPP-47804

    [static] CODSTA-203 should not detect strings used in std::cout

    CPP-47863

    [engine] incorrect reconstruction of cast in designated initializer

    CPP-48197

    [static] Improve mapping for AUTOSAR A8-4-7

    CPP-49197

    [static] Improve definition of POD in OOP-48 (AUTOSAR-M11_0_1-a)

    CPP-49771

    [static] Improve mapping for AUTOSAR A5-2-2

    CPP-49849

    [static] AUTOSAR A3-9-1: Consider do not report on plain char types used for characters

    CPP-49917

    [static] Mapping for CERT_C-EXP36 should be improved

    CPP-50105

    [static] Show the undefined character in AUTOSAR A2-3-1

    CPP-50174

    [static] Improve mapping for CERT_C-POS44

    CPP-51175

    [engine] Parse error due to edg.implicit_typename_enabled=true

    CPP-51288

    [engine] error: qualified name is not allowed

    CPP-51304

    [engine] cpptestcc error: no instance of overloaded function "vfc::slerp" matches the argument list

    CPP-51452

    [rulewizard] Expressions in _Static_assert should be detected by static analysis rules

    CPP-51594

    [compiler] Support for GNU GCC 10 aarch32/arm

    CPP-51687

    [static] GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) reports false positive on aliases that are used

    CPP-51753

    [compiler] Support for WindRiver Clang/ARM 9.0.1 and VxWorks 7.0 SR 640 for Linux (extended)

    CPP-51767

    [static] MISRA2004-11_3_a (AUTOSAR-M5_2_9-a) should have an exception for uintptr_t and intptr_t types.

    CPP-51773

    [compiler] Support for GNU GCC 11 aarch32/arm

    CPP-51843

    [compiler] Parsing error for static asm procedure and 'rvct_5_0_uV'

    CPP-51853

    [static] MISRA2004-8_7 (AUTOSAR-M3_4_1-b) reports false positive when variable is used in template function

    CPP-51854

    [static] EXCEPT-17 (AUTOSAR-M15_3_6-a) reports false positive violations on nested try-catch blocks

    CPP-52158

    [engine] CWC internal error: assertion failed at: "exprutil.c", line 17859 in alloc_expr_ctor_dynamic_init

    CPP-52163

    [compiler] Parsing error for '_packed_' attribute with TASKING-6.3

    CPP-52185

    [static] The BD-PB-UCMETH rule should be added into mapping for MISRAC2012-RULE_2_1

    CPP-52188

    [static] Improve mapping for CERT_C-EXP20

    CPP-52196

    [static] MISRAC2012-RULE_10_1-a (CODSTA-161_a) should detect when a pointer is the operand of a logical operator

    CPP-52212

    [engine] Instrumentation error: final specifier on templated class not reconstructed

    CPP-52222

    [ide] build.id value passed to C+test Engine (Standard) started by C+test Professional should be calculated using session start time - not current time

    CPP-52242

    [static] Improve mapping for CERT-MSC07_C and CERT-MSC12_C

    CPP-52250

    [engine] CRTP C++ technique instrumentation failure

    CPP-52260

    [engine] Cannot collect Coverage for out-of-body template method definition for template class specialization.

    CPP-52264

    [static] PB-69 reports python errors

    CPP-52266

    [static] CODSTA-CPP-92 (MISRA2008-10_2_1) reports false positive for assignment operator

    CPP-52274

    [rulewizard] Typedefs are not visible when it is used to call a constructor

    CPP-52302

    [compiler] Windows style paths inside of iccarm response files are being evaluated when they shouldn't be

    CPP-52322

    [static] Improve mapping for CERT-C INT10

    CPP-52338

    [static] GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) reports false positive on aliases that are actually used

    CPP-52344

    [static] MISRA2008-2_10_6_a (CODSTA-CPP-87_a) false positive: rule complains about conflicting identifiers between class name and its constructor name

    CPP-52345

    [static] CERT_CPP-DCL60-a (GLOBAL-UNIQUETYPE) false positive: complains that class and its constructor have the same name

    CPP-52351

    [engine] error: expression must have a constant value

    CPP-52372

    [compiler] Support for Hexagon 8.6 (Linux, Extended, Full)

    CPP-52384

    [rulewizard] Using declaration doesn't see entity->MemberFunction for template base classes

    CPP-52385

    [rulewizard] Deduction guide should not be detected as function definition

    CPP-52386

    [engine] Add enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang to recognized options for clang compilers

    CPP-52416

    [static] Line Suppression inconsistency

    CPP-52483

    [docs] Document CPPTEST_MULTI_PROCESSES_LOG configuration macro

    CPP-52515

    [static] OPT-32_b (MISRA2008-0_1_8_b) reports false positives on template functions containing only static_assert expression

    CPP-52521

    [engine] Incorrect instrumentation

    CPP-52530

    [static] GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) reports false positives on local structs used only as template arguments

    CPP-52538

    [rulewizard] Expressions in _Static_assert in template instances should be detected by static analysis rules

    CPP-52544

    [static] Split the CODSTA-CPP-53 (AUTOSAR-A7_1_1-a) rule (check parameters separately)

    CPP-52558

    [engine] error: 'key_only' is not captured

    CPP-52577

    [static] NAMING-47 (MISRA2008-2_10_1) does not report when identifiers differs by specific combinations of characters

    CPP-52578

    [static] OPT-03 (AUTOSAR-A0_1_4-a) reports false positive when a parameter is only used in decltype()

    CPP-52581

    [static] CODSTA-26 (HICPP-5_1_1-a) reports false positive on hardcoded value in initializer of const/constexpr used in template

    CPP-52593

    [static] MISRA2004-16_8 (AUTOSAR-A8_4_2-a) reports false positives on functions with 'return' in 'if constexpr'

    CPP-52599

    [engine] Error[Pe265]: member "A::c_numberOfA" (declared at line 19) is inaccessible

    CPP-52602

    [static] MISRA2004-17_5 (MISRAC2012-RULE_18_5-a) reports false positive on pointers to arrays in function parameters

    CPP-52603

    [static] MISRA2004-16_7 (MISRAC2012-RULE_8_13-a) reports false positive on pointers to array types

    CPP-52623

    [static] CODSTA-CPP-78 (MISRA2008-9_3_3) reports false positive when a function contains non-static code inside 'if constexpr'

    CPP-52625

    [static] CODSTA-81 (MISRA2008-3_3_2) reports false positive when a function is declared in indirect unnamed namespace

    CPP-52648

    [rulewizard] Expressions in decltype() should be detected by static analysis rules

    CPP-52656

    [static] MISRA2004-14_3 (AUTOSAR-M6_2_3-a) reports when [[fallthrough]] attribute is in the same line as null statement

    CPP-52659

    [static] MISRA2004-17_6_a (AUTOSAR-A3_8_1-b) reports false positive when an address to for-range element is returned

    CPP-52669

    [static] An error has occurred while running the rule 'INTERNAL-METRICS-METHODS2

    CPP-52674

    [engine] Reference not available in lambda without capture

    CPP-52702

    [engine] error: expression must have a constant value

    CPP-52736

    [static] CODSTA-MCPP-37 (AUTOSAR-A12_1_6-a) reports false positive when constructor in derived class initializes members

    CPP-52743

    [static] INIT-18 (AUTOSAR-A12_1_2-a) reports false positive when static member is assigned in constructor

    CPP-52745

    [engine] error: invalid cast from type '__m128i {aka __vector(2) long long int}' to type 'cv_ void_ptr {aka const volatile void*}'

    CPP-52760

    [static] MISRA2008-5_2_10 detects non-arithmetics operators

    CPP-52769

    [engine] Add support for __va_list type for aarch64

    CPP-52797

    [compiler] Incorrect parsing of --utf8_text_in option for IAR compilers

    CPP-52819

    [static] OOP-07 (AUTOSAR-A10_1_1-a) does not detect correctly interface classes

    CPP-52825

    [engine] no instance of function template "f" matches the argument list

    CPP-52831

    [static] GLOBAL-ONEUSEVAR (MISRA2008-0_1_4) reports false positive when variable is used in static_assert in template

    CPP-52839

    [static] Improve mapping for AUTOSAR A8-4-3

    CPP-52875

    [static] Improve mapping for MISRAC2012-RULE-12_2 rule

    CPP-52876

    [static] GLOBAL-ONEFILEDECL (AUTOSAR-M3_2_3) reports false positive on enum forward declaration

    CPP-52877

    [static] PB-41_b reports false positive when braced initializer with 'std::initializer_list' is used

    CPP-52879

    [compiler] Clang 10 invalid alignment value specified by attribute

    CPP-52890

    [compiler] error C3615: constexpr function 'operator new' cannot result in a constant expression

    CPP-52892

    [static] CODSTA-CPP-103 (AUTOSAR-A8_4_8-a) reports false positive when parameter is used in constructor init list

    CPP-52977

    [static] CODSTA-224 (AUTOSAR-A5_16_1-a) reports false positive on conditional operator used in template member initializer

    CPP-52984

    [engine] GCC allows "weak" string to be constexpr

    CPP-53007

    [ide] Update the title with the information using "collapse all" link on test case editor

    CPP-53070

    [static] CODSTA-184 reports IndexError: list index out of range

    CPP-53100

    [cli] C/C++test Standard CLI crashes on GoogleTest reports that have skipped tests

    CPP-53683

    [ide] Issue when editing "Stub Configuration" in the test case editor with "Code"

    FA-4985

    BD-PB-CC false positives on conditions whose value depends on the template parameter

    FA-9225

    Behavior of BD-PB-VOVR's "Report when there is at least one path..." parameter does not fit its description

    FA-9261

    BD-PB-CC false negative when checking out-of-range value for equality

    FA-9265

    Model for failed dynamic_cast on reference type incorrectly throwing 'int' instead of 'std::bad_cast'

    FA-9335

    BD-PB-ZERO false positive in sensitive mode when divisor is casted

    FA-9368

    BD-PB-NOTINIT false positive

    XT-40717The same suppressions reason reported for all comment suppressions in single line
    XT-40748Incorrect behavior of "wait for tokens" option
    XT-40970Applying OIDC settings does not force authentication when refresh token is invalid
    XT-41092Relative paths to rule links are resolved to absolute making reports and rule docs non-portable
    CPP-52820*[engine] Instrumentation error: Expression must have a constant value instrumentation failure
    CPP-53718*[engine] constexpr __builtin_strcmp/__builtin_memcmp causes memory buffer overrun
    CPP-53785*[static] OPT-43: IndexError: string index out of range
    XT-41178*Support for Gitlab SAST v.15 report format

    Anchor
    Available in 2023.1.1
    Available in 2023.1.1
    *Available in C/C++test 2023.1.1 or newer

    Updates to Rules

    Anchor
    New Rules
    New Rules
    New 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

    Anchor
    Updated Rules
    Updated Rules
    Updated Rules

    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

    Removed Rules

    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.

    AnchorNew RulesNew RulesNew Rules

    Rule ID

    Header

    AnchorUpdated RulesUpdated RulesUpdated Rules

    Category ID

    Rule IDs

    Removed Rules

    Notes

    Rule ID

    Scroll Only

    For information about this release, see https://docs.parasoft.com/display/CPPTEST20231/Updates+in+2023.1.