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