Release Notes - 2.3



This is an LTS release: no code changes have been made.


Other Updates

Correction of a complex parsing issue.


Resolved Issues

Customer Ticket Id Details
28525 Fixes an analysis issue wherein the last execution ended in error on step “prepare_analysis_data”.
30898 Fixes an issue wherein a C/C++ Function defined by a macro was missing.
28313 Fixes false violation for the rule: “Ensure you provide a user-defined copy constructor or disable copy when a class allocates memory in its constructor”.

Other Updates

Fixes a wrong guid in uax file for class with macro in declaration.
Fixes an issue wherein CAnalyzer2 was created in temporary folder when C++ Analyzer was launched.
Fixes an error in TCC Configuration file.


Resolved Issues

Customer Ticket Id Details
26411 CPP analysis failed with error: “exited with error code -1073741819”.
26612 PB: CPP analysis failed with error: “exited with error code -1073741819”.


Resolved Issues

Customer Ticket Id Details
24883 For C/C++ rules, parameter ‘Number of violation occurrences’ is showing the function name in dashboard.

Other Updates

Macro objects missing when header file that contains macro definition is included in PCH


Other Updates

A performance issue while processing virtual links have been fixed.
Recent code change may have resulted in warnings about \CAST-System in log. This is now fixed.
An intermittent crash while parsing file with complex lables and goto statements have been fixed.


Rule Id New Rule Details
1065110 FALSE The rule “Ensure arrays and containers are accessed using unsigned values” has been disabled and is no longer available. This change could impact your existing grades when generating a new snapshot on existing unchanged source code.
1065132 TRUE Avoid using typeid in polymorphic class from the body of its constructor or destructor.
1065130 TRUE Avoid defining, redefining or undefining standard macros from standard library
1065128 TRUE Avoid having unused labels in your program (C/C++)
1065126 TRUE Avoid using goto to jump backwards into a statement in the same function(C/C++)
1065124 TRUE Avoid using ‘goto’ statement to jump into or out of blocks
1065122 TRUE Avoid #define or #undef macros anywhere other than global namespace
1065120 TRUE Avoid using # OR ## operators more than once while defining macros
1065118 TRUE Arguments to a function-like macro shall not contain tokens that look like preprocessing directives.
1065116 TRUE Undefined macro identifiers shall not be used in #if or #elif preprocessor directives, except as operands to the defined operator
1065114 TRUE Avoid lines starting with “#” with invalid pre-processing directive
1065018 TRUE Avoid using offsetof from <cstddef>

New Support

Summary Details
Transaction Entry\Exit point C++ Analyzer would now have default TCCSetup file which would be automatically loaded in TCC.



Rule Id New Rule Details
1065110 TRUE Ensure arrays and containers are accessed using unsigned values
1065108 TRUE Bit-fields shall be either unsigned integral, or enumeration (with underlying type of unsigned integral type)
1065106 TRUE Avoid comparing types of different widths in a loop
1065104 TRUE Converting a multiplication to a larger type should be done before the multiplication takes place
1065102 TRUE Avoid checking Integer overflow without explicit cast