You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Release date: October 20, 2020

This release includes the following enhancements:

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 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 Suppressing the Reporting of Findings.

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 findings that are most relevant at the current stage of your development process.

New Scoping Options to Target 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. Configuring Reporting Options.

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.

New and Updated Code Analysis Rules

We've added new static analysis rules to extend coverage of compliance standards, with a special focus on ... .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

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.

Other Enhancements

  • You can now configure a test configuration to send advanced metadata to DTP to allow DTP to more accurately classify violations. See Creating Custom Test Configurations.
  • 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.


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

Updated Rules

Removed Rules

The following rules have been removed to enhance the accuracy of results:


  • No labels