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 ID | Header |
|---|---|
| GLOBAL-UNIQUETYPE | A class, union or enum name (including qualification, if any) shall be a unique identifier |
| GLOBAL-UNUSEDFUNC | Every defined function with external linkage shall be used at least once |
| MISRA2008-0_1_10_b | Every defined function with external linkage shall be used |
| MISRA2008-2_10_41 | A 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 |
|---|---|
| Flow Analysis | BD-SECURITY-TDENV, BD-SECURITY-TDCONSOLE, BD-PB-CHECKRET |
| Coding Conventions | CODSTA-10, CODSTA-11, CODSTA-61, CODSTA-67, CODSTA-112, CODSTA-CPP-02, CODSTA-CPP-11, CODSTA-CPP-66, CODSTA-MCPP-10_a, CODSTA-MCPP-10_b, CODSTA-MCPP-14, CODSTA-MCPP-16_b, CODSTA-MCPP-16_c, CODSTA-MCPP-16_d |
| Comments | COMMENT-05 |
| Exceptions | EXCEPT-17 |
| Formatiing | FORMAT-26 |
| Initialization | INIT-06 |
| Joint Strike Fighter | JSF-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 C | MISRA-030 |
| MISRA 2004 | MISRA2004-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 2008 | MISRA2008-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 2012 | MISRA2012-DIR-4_4, MISRA2012-RULE-5_7_a, MISRA2012-RULE-5_7_b, MISRA2012-RULE-12_2, MISRA2012-RULE-18_8 |
| Memory and Resource Management | MRM-45 |
| Naming Conventions | NAMING-05 |
| Object Oriented | OOP-34 |
| Optimization | OPT-30 |
| Possible Bugs | PB-23, PB-25, PB-47 |
| Security | SECURITY-02, SECURITY-05, SECURITY-14, SECURITY-15, SECURITY-28, SECURITY-37 |
Resolved Bugs and FRs
| Bug/FR ID | Description |
|---|---|
| CPP-40199 | Support for GHS PPC 2017.1 compiler |
| CPP-39947 | Support for Windows Server 2016 |
| CPP-37054 | Support for Visual Studio 2017 IDE |
| CPP-39500 | [C++test Desktop] Support for Eclipse 4.7 Oxygen IDE |
| CPP-31853 | Add MISRA2008-0_1_10_b: Every defined function with external linkage shall be used |
| CPP-36719 | PB-47 does not report a violation if an argument contains unary minus ('-a') of an unsigned type |
| CPP-36964 | SECURITY-14 does not check scanf() variants |
| CPP-38107 | CODSTA-10 does not support "auto" type |
| CPP-38218 | COMMENT-05 may not report violation for variables defined in macros |
| CPP-38234 | MISRA2012-RULE-12_2 (MISRA2004-12_8) should check conditions for loops in the same way as for 'if' |
| CPP-38339 | SECURITY-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-38588 | PB-25 reports incorrect violation on std::initializer_list |
| CPP-38592 | MISRA2004-10_1_g may not report violation on implicit conversion of function arguments from and to plain char types |
| CPP-39416 | CODSTA-11 doesn't report violations for its example code |
| CPP-39489 | RuleWizard property 'Kind' for 'cast' node doesn't work correctly for functional casts |
| CPP-39494 | MRM-45 reports false positive when memory allocated by malloc() is assigned to a pointer with multiple levels of indirection |
| CPP-39534 | Compilation error C2059 for d3dx10math.h(449) |
| CPP-39542 | [C++test Desktop] Test Case Editor ctrl+space assistant sometimes inserts space before value |
| CPP-39548 | Rename STRINGIZE macro in C++test runtime |
| CPP-39581 | Make 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-39758 | qcc: add support for enabling c99 mode via '-Wp' option |
| CPP-39804 | Parse error: type name is not allowed |
| CPP-39834 | NAMING-05 reports false positive for range-based 'for' loops |
| CPP-39835 | INIT-06 repors false violation if member initialization is performed in different translation unit |
| CPP-39838 | FORMAT-26 reports false positive on Rvalue References |
| CPP-39839 | NAMING-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-39919 | MISRA2012-DIR-4_4 causes problems on multiline comments |
| CPP-39925 | JSF-081(OOP-34) and JSF-082(CODSTA-CPP-02) report false positives when an assignment operator is explicitly defined as default |
| CPP-39973 | CLLOCRIT ignores comments in functions defined outside class body |
| CPP-39975 | [C++test Desktop] Test cases with Data Sources are counted incorrectly in DTP |
| CPP-40040 | CODSTA-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-5764 | Errors building CFGs for C++ code |
| FA-5623 | No/bad handling of no throw allocators |
| FA-5783 | BD-PB-MODSTR rule may include '$tmp_.....' in the message, making it inconsistent between runs |
| FA-5672 | BD-PB-PTRARR does not report violations if the pointer arithmetic is done on an address of the member field |
| FA-5760 | Update BD-TRS-DLOCK to not report when the 2nd lock is done using pthread_mutex_trylock (or any other functions with similar functionality) |
| FA-5077 | BD-MISC-DC not found / duplicate violations |
| FA-4779 | Java graph elements do not contain information about implicit casting |
| FA-4830 | PB.ARRAY false positives due to missing model for String.Length property |
| FA-5836 | Preanalysis broken by exceptions |
| FA-5091 | Simulation state missing info about connection between pointer and array values |
| FA-5905 | BD-PB-OVERFWRpossibly false positive - incorrect determining out-of-bounds for last struct field of type char[0] |
| FA-5883 | Incremental 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-34610 | Default build.id different than what is in documentation. |
| XT-34642 | Parasoft Jenkins plugin gets stuck when being executed as part of pipeline project. |
| XT-34944 | Calculating different session tags for the subsequent builds |
| XT-34960 | DTP highlights incorrect line for the violation. |
| XT-34977 | Incorrect session tag was included in the report - noscBranchparameter |
| XT-34985 | SVN server port is not properly passed to the engine. |
| XT-34995 | Possible issues with metadata processor. |