This release includes new features, as well as enhancements to the existing functionality.
In this release:
Support for New Compilers
Suppress Findings Locally on Your Desktop
When you suppress findings in your IDE, the suppression information can now be stored locally on your desktop - without impacting suppressions that are shared across the team via DTP or your source control system. Locally suppressed findings can be reviewed and unsuppressed right in your IDE. For details, see Suppressing Findings.
Static Analysis Customization with Rule Maps
Enhanced rule mapping facilitates quick and flexible implementation of your organization's development policy. You can create rule maps to change the properties of static analysis rules executed by C/C++test such as severity and category, and associate them with test configurations stored in Development Testing Platform.
Enhancements to Static Analysis
In this release, we've added new rules following the CERT C Coding Standard, as well as modern C++ standards (C++11, C++14, and C++17), see New Code Analysis Rules. The CERT C rules have been added to the CERT C Coding Standard built-in test configuration; see Updated CERT C Configuration for information about the mapping.
Additionally, stability and accuracy of results reported by Static Analysis and Flow Analysis have been improved; see Updated Code Analysis Rules for the list of rules that have been modified in terms of accuracy of results or documentation changes.
Severity levels for MISRA C 2012 rules have been updated:
The RuleWizard Module has been extended with the following nodes and properties:
See RuleWizard 10.3.2 User's Guide for more details.
The verbose mode has been added for the BD-PB-ZERO rule.
The following rules have been modified in terms of accuracy of results or documentation changes:
* documentation changes
|CERT ID||Parasoft ID|
|CERT-POS30-C||CODSTA-144, CODSTA-145, BD-PB-OVERFNZT|
|CERT-PRE31-C||CODSTA-150, CODSTA-150_b, CODSTA-150_c|
|CERT-STR31-C||BD-PB-ARRAY, BD-PB-OVERFWR, BD-SECURITY-BUFWRITE, BD-SECURITY-OVERFWR, SECURITY-12|
|CERT-STR34-C||CODSTA-187_a, CODSTA-187_b, CODSTA-187_c|
Resolved FRs and PRs
|CPP-36398||Problem with matching function definition with its declaration when using Eigen library|
|CPP-36850||Add support for C++11 inarmcc5.06|
|CPP-36861||Support for Renesas RX 2.05 C/C++ compiler (renrx_2_5)|
|CPP-36892||The rule MISRA-107_b reports false positives when pointer is assigned and checked in the same line|
|CPP-36896||Support for GNU GCC 6 (native/host-based compiler)|
|CPP-36965||CODSTA-CPP-53 false positive, "Declare local variable 'x' as const"|
|CPP-36966||OOP-01 (Sutter Rule 54) false positive: "Base class copy constructor should be protected or public with smart pointer as parameter"|
|CPP-36967||CODSTA-CPP-28 (Sutter Rule 27) false positive: "Whenbinaryarithmeticoperatorsaredefined,assignmentversionsshouldbeprovidedtoo"|
|CPP-37005||DTP Findings tab "Subcategory" show "Unknown" for all C++test findings.|
|CPP-37009||Rule INIT-06 reports violation even if member is initialized directly in class [C++11]|
|CPP-37011||The rule MISRA2004-6_3_b (MISRA2012-DIR-4_6_b, JSF-209_b) does not report violation when implicit signed/unsigned type is used|
|CPP-37018||The rule CODSTA-CPP-04 should not report violations on move constructors [C++11]|
|CPP-37019||Segmentation fault when using cwc.bin (TIOBE)|
|CPP-37021||The rule MISRA2004-16_7 (MISRA2012-RULE-8_13_a) reports false positives|
|CPP-37022||QA: Suppression comment is garbled when the multibyte character is used to suppression comment|
|CPP-37023||[VS2015] Parse problem with _Buffer_descriptor() restrict(amp,cpu)|
|CPP-37782||Source paths not correctly scanned in BDF file|