In this release, we've focused on enhancing code analysis capabilities and extending support for environments.

Extended Support for Compilers

  • Support for Green Hills Software Compiler for PPC 2017.1.x

Extended Support for Platforms

  • Support for Windows Server 2016

Extended Support for IDEs

  • Support for Eclipse 4.7

Enhanced Flow Analysis

You can now configure Flow Analysis to analyze a list of functions and files from outside the scope (see Flow Analysis for details).

New Code Analysis Rules

Rule IDHeader
GLOBAL-UNIQUETYPEA class, union or enum name (including qualification, if any) shall be a unique identifier
GLOBAL-UNUSEDFUNCEvery defined function with external linkage shall be used at least once
MISRA2008-0_1_10_bEvery defined function with external linkage shall be used
MISRA2008-2_10_41A class, union or enum name (including qualification, if any) shall be a unique identifier

1 The following rules have been removed and with the new rule MISRA2008-2_10_4 : MISRA2008-2_10_4_a, MISRA2008-2_10_4_b, MISRA2008-2_10_4_c

Updated Code Analysis Rules

Rule Category

Rule IDs

Joint Strike FighterJSF-051_a, JSF-071_b, JSF-081, JSF-082, JSF-117_b, JSF-127, JSF-132_a, JSF-142_a, JSF-163, JSF-164, JSF-185, JSF-186_h, JSF-194, JSF-202
MISRA 2004MISRA2004-2_4, MISRA2004-5_4_a, MISRA2004-5_4_b, MISRA2004-5_4_c, MISRA2004-9_1, MISRA2004-10_1_g, MISRA2004-12_8, MISRA2004-13_3, MISRA2004-16_9
MISRA 2008MISRA2008-0_1_10, MISRA2008-2_7_2, MISRA2008-2_7_3, MISRA2008-3_9_1, MISRA2008-5_2_4, MISRA2008-5_8_1, MISRA2008-6_2_2, MISRA2008-6_4_3_c, MISRA2008-6_4_6, MISRA2008-8_4_4, MISRA2008-8_5_1, MISRA2008-15_3_6
MISRA 2012MISRA2012-DIR-4_4, MISRA2012-RULE-5_7_a, MISRA2012-RULE-5_7_b, MISRA2012-RULE-12_2, MISRA2012-RULE-18_8
Memory and Resource ManagementMRM-45
Naming ConventionsNAMING-05
Object OrientedOOP-34
Possible BugsPB-23, PB-25, PB-47

Resolved Bugs and FRs

Bug/FR IDDescription
CPP-40199Support for GHS PPC 2017.1 compiler
CPP-39947Support for Windows Server 2016
CPP-37054Support for Visual Studio 2017 IDE
CPP-39500[C++test Desktop] Support for Eclipse 4.7 Oxygen IDE
CPP-31853Add MISRA2008-0_1_10_b: Every defined function with external linkage shall be used
CPP-36719PB-47 does not report a violation if an argument contains unary minus ('-a') of an unsigned type
CPP-36964SECURITY-14 does not check scanf() variants
CPP-38107CODSTA-10 does not support "auto" type
CPP-38218COMMENT-05 may not report violation for variables defined in macros
CPP-38234MISRA2012-RULE-12_2 (MISRA2004-12_8) should check conditions for loops in the same way as for 'if' 
CPP-38339SECURITY-05 may not report violation when passing function parameter to printf()
CPP-38408[C++test Desktop] View Test Configuration action for specific violation doesn't display proper configuration
CPP-38588PB-25 reports incorrect violation on std::initializer_list
CPP-38592MISRA2004-10_1_g may not report violation on implicit conversion of function arguments from and to plain char types
CPP-39416CODSTA-11 doesn't report violations for its example code
CPP-39489RuleWizard property 'Kind' for 'cast' node doesn't work correctly for functional casts
CPP-39494MRM-45 reports false positive when memory allocated by malloc() is assigned to a pointer with multiple levels of indirection
CPP-39534Compilation error C2059 for d3dx10math.h(449)
CPP-39542[C++test Desktop] Test Case Editor ctrl+space assistant sometimes inserts space before value
CPP-39548Rename STRINGIZE macro in C++test runtime
CPP-39581Make MISRA2008-2_10_4 global rule
CPP-39741[C++test Desktop] SCC instrumentation for question mark may causes compilation errors
CPP-39742[C++test Desktop] MemoryAnalysis and Stubs features enforce xharness for all files (even with all instrumentation features off)
CPP-39756[C++test Desktop] Some "Flow Analysis Advanced Settings" cannot be modified in test configuration UI
PP-39758qcc: add support for enabling c99 mode via '-Wp' option
CPP-39804Parse error: type name is not allowed
CPP-39834NAMING-05 reports false positive for range-based 'for' loops
CPP-39835INIT-06 repors false violation if member initialization is performed in different translation unit
CPP-39838FORMAT-26 reports false positive on Rvalue References
CPP-39839NAMING-05 reports false positive for range-based 'for' loops
CPP-39894[Docs] UNIX install script errors
CPP-39912[C++test Desktop] SVN server port is ignored for Static Analysis
CPP-39919MISRA2012-DIR-4_4 causes problems on multiline comments
CPP-39925JSF-081(OOP-34) and JSF-082(CODSTA-CPP-02) report false positives when an assignment operator is explicitly defined as default
CPP-39973CLLOCRIT ignores comments in functions defined outside class body
CPP-39975[C++test Desktop] Test cases with Data Sources are counted incorrectly in DTP
CPP-40040CODSTA-67 reports false positive when member variable declaration contains 'constexpr' [c++11]
CPP-40122[C++test Desktop] may report mapping errors for Team-shared rulemaps
CPP-40137[C++test Desktop] Allow cloning RuleWizard rules with the Edit Rulemap dialog
CPP-40138[C++test Desktop] Allow removing multiple entries at once in the Edit Rulemap dialog
CPP-40139[C++test Desktop] Improve error message when cloned/mapped rule id is used in the Edit Rulemap dialog
CPP-40144[C++test Desktop] Improve performance of suppressions handling
FA-5764Errors building CFGs for C++ code
FA-5623No/bad handling of no throw allocators
FA-5783BD-PB-MODSTR rule may include '$tmp_.....' in the message, making it inconsistent between runs
FA-5672BD-PB-PTRARR does not report violations if the pointer arithmetic is done on an address of the member field
FA-5760Update BD-TRS-DLOCK to not report when the 2nd lock is done using pthread_mutex_trylock (or any other functions with similar functionality)
FA-5077BD-MISC-DC not found / duplicate violations
FA-4779Java graph elements do not contain information about implicit casting
FA-4830PB.ARRAY false positives due to missing model for String.Length property
FA-5836Preanalysis broken by exceptions
FA-5091Simulation state missing info about connection between pointer and array values
FA-5905BD-PB-OVERFWRpossibly false positive - incorrect determining out-of-bounds for last struct field of type char[0]
FA-5883Incremental analysis cache compactization does not work.
XT-10181 Value input for hours drops by one causes unable to borrow license. 
XT-34419 Importing findings from IDE by project doesn't work.
XT-34610Default different than what is in documentation.
XT-34642 Parasoft Jenkins plugin gets stuck when being executed as part of pipeline project.
XT-34944Calculating different session tags for the subsequent builds
XT-34960DTP highlights incorrect line for the violation.
XT-34977Incorrect session tag was included in the report - noscBranchparameter
XT-34985SVN server port is not properly passed to the engine.
XT-34995Possible issues with metadata processor.

For information about this release, see