This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.

2.3.3

Note

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

2.3.3-funcrel

Other Updates

Details
Correction of a complex parsing issue.

2.3.2-funcrel

Resolved Issues

Customer Ticket IdDetails
28525Fixes an analysis issue wherein the last execution ended in error on step "prepare_analysis_data".
30898Fixes an issue wherein a C/C++ Function defined by a macro was missing.
28313Fixes 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

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

2.3.1-funcrel

Resolved Issues

Customer Ticket IdDetails
26411CPP analysis failed with error: "exited with error code -1073741819".
26612PB: CPP analysis failed with error: "exited with error code -1073741819".

2.3.0-funcrel

Resolved Issues

Customer Ticket IdDetails
24883For C/C++ rules, parameter 'Number of violation occurrences' is showing the function name in dashboard.

Other Updates

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

2.3.0-beta1

Other Updates

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

Rules

Rule IdNew RuleDetails
1065110FALSEThe 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.
1065132TRUEAvoid using typeid in polymorphic class from the body of its constructor or destructor.
1065130TRUEAvoid defining, redefining or undefining standard macros from standard library
1065128TRUEAvoid having unused labels in your program (C/C++)
1065126TRUEAvoid using goto to jump backwards into a statement in the same function(C/C++)
1065124TRUEAvoid using 'goto' statement to jump into or out of blocks
1065122TRUEAvoid #define or #undef macros anywhere other than global namespace
1065120TRUEAvoid using # OR ## operators more than once while defining macros
1065118TRUEArguments to a function-like macro shall not contain tokens that look like preprocessing directives.
1065116TRUEUndefined macro identifiers shall not be used in #if or #elif preprocessor directives, except as operands to the defined operator
1065114TRUEAvoid lines starting with "#" with invalid pre-processing directive
1065018TRUEAvoid using offsetof from <cstddef>

New Support

SummaryDetails
Transaction Entry\Exit pointC++ Analyzer would now have default TCCSetup file which would be automatically loaded in TCC.

2.3.0-alpha1

Rules

Rule IdNew RuleDetails
1065110TRUEEnsure arrays and containers are accessed using unsigned values
1065108TRUEBit-fields shall be either unsigned integral, or enumeration (with underlying type of unsigned integral type)
1065106TRUEAvoid comparing types of different widths in a loop
1065104TRUEConverting a multiplication to a larger type should be done before the multiplication takes place
1065102TRUEAvoid checking Integer overflow without explicit cast