You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 4
Next »
2.2.2-funcrel
Performance Improvements
Summary |
Correction of CPP-346 C++ extension execution at application level takes too long |
2.2.1-funcrel
Resolved Issues
Customer Ticket Id |
Details |
24685 |
Incorrect links to Cast-Sytem objects leading to false violations |
2.2.0-funcrel
Other Updates
Details |
Missing violations for "Avoid using 'enum' types as operands for arithmetic contexts" while using & or &= with enums |
False violation for "Avoid performing conversion from a function pointer to any other type (C/C++)" for GetProcAddress |
False violation for "Avoid performing conversion from a function pointer to any other type (C/C++)" for MFC standard macros |
Missing violation for "Avoid calling virtual method from constructor\destructor" |
False violation for "Avoid using 'enum' types as operands for arithmetic contexts" |
2.2.0-beta1
Rules
Rule Id |
New Rule |
Details |
1065084 |
TRUE |
Avoid performing conversion from a function pointer to any other type (C/C++) |
1065086 |
TRUE |
Avoid casting and converting a pointer type to an integral type (C/C++) |
1065090 |
TRUE |
Avoid using 'enum' types as operands for arithmetic contexts |
1065092 |
TRUE |
Avoid having boolean operators with non-boolean operands (C/C++) |
1065094 |
TRUE |
Avoid having expressions with bool type to be used as operands on operators other than =, &&, ||, !, ==, !=, the unary & operator, and the conditional operator |
1065096 |
TRUE |
Avoid dynamic_cast to convert current object to its derived class from its constructor or destructor |
1065098 |
TRUE |
Avoid delete operators to exit with an exception |
1065100 |
TRUE |
Avoid move constructor and move assignment operator to exit with an exception |
1065080 |
TRUE |
Avoid using C-style and functional notation casts (C++) |
1065082 |
TRUE |
Handlers of a function-try-block implementation of a class constructor ordestructor shall not reference non-static members from this class or its bases |
Other Updates
Details |
Constructors and destructors are detected as "C++ Function" with name ending with "@ctor" and "@dtor" respectively. In case, if/when class definition is not found, constructors and destructors would be named as @ctor and @dtor respectively. Analyzer log will contain following message in this scenario: Definition for ‘’ not found. ‘@ctor\@dtor’ would be detected as 'C++ Function'. |
Incorrect object detection when unresolved macro is used inside struct\class |
False violation for lambda for "Avoid having a method call or additional expressions in a statement using "++" or "--" operators (C/C++)" |
Missing violation for _tmain for "Ensure that there is at least one exception handler to catch-all otherwise unhandled exceptions in the main function(C++)" |
False violation for _tmain for "Avoid using catch all" |
False violations for QR "Avoid testing floating point numbers for equality" |
2.2.0-alpha1
Rules
Rule Id |
New Rule |
Details |
1065066 |
TRUE |
Avoid having a method call or additional expressions in a statement using "+" or "--" operators (C/C+) |
1065068 |
TRUE |
Avoid using Digraphs (C++) |
1065070 |
TRUE |
Avoid using Trigraphs |
1065072 |
TRUE |
Avoid using Unions |
1065074 |
TRUE |
All constructors that are callable with a single argument of fundamental type shall be declared explicit. |
1065076 |
TRUE |
Avoid declaring data members in non-POD classes as public or protected |
1065078 |
TRUE |
A base class shall be declared virtual only if it is used in a diamond hierarchy |
Other Updates
Details |
CASTONCAST: access violation while parsing template. NOTE: As a result of this fix, objects and links may increase. Also, as the files are not be skipped, analysis time may increase. |
CASTONCAST: access violation while parsing function declaration. NOTE: As a result of this fix, objects and links may increase. Also, as the files are not be skipped, analysis time may increase. |
CASTONCAST: False violation for "All if … else if constructs shall be terminated with an else clause (C/C++)" if else is not delimited by {} |
CASTONCAST: False violations for "Avoid non-void return type function without an explicit return of an expression (C/C++)". NOTE: In certain cases, constructors and destructors were detected as C++ Function instead of constructors and destructors. In such cases, false violations was displayed. This has been fixed. |
CASTONCAST: False Violation for "Ensure Switch statements have at least 2 case clauses (C/C++)" with nested switch |
CASTONCAST: False violation for "Avoid missing default in switch statements" with nested switch |
Run-time exception while parsing struct when macro used in struct is not resolved. NOTE: As a result of this fix, objects and links may increase. Also, as the files are not be skipped, analysis time may increase. |
CASTONCAST: False violation for "Avoid using "sizeof" on expressions that contain side effects" when using C++ version of _countof |
2.2.0-beta1
Resolved Issues
The following issues have been fixed in this release of the analyzer.
Internal ID | Call ID | Summary | Notes |
---|
CPP-273 | - | Constructors and destructors are detected as "C++ Function" with name ending with "@ctor" and "@dtor" respectively | In case, if/when class definition is not found, constructors and destructors would be named as @ctor and @dtor respectively. Analyzer log will contain following message in this scenario: Definition for ‘<class name>’ not found. ‘@ctor\@dtor’ would be detected as 'C++ Function'. |
CPP-287 | - | Incorrect object detection when unresolved macro is used inside struct\class |
|
CPP-298 | - | False violation for lambda for "Avoid having a method call or additional expressions in a statement using "++" or "--" operators (C/C++)" |
|
CPP-301 | - | Missing violation for _tmain for "Ensure that there is at least one exception handler to catch-all otherwise unhandled exceptions in the main function(C++)" |
|
CPP-303 | - | False violation for _tmain for "Avoid using catch all" |
|
CPP-304 | - | False violations for QR "Avoid testing floating point numbers for equality" |
|
New Rules
The following new rules have been added in this release of the analyzer:
Rule ID |
| Rule Name |
---|
| CPP-175 | Avoid performing conversion from a function pointer to any other type (C/C++) |
| CPP-171 | Avoid casting and converting a pointer type to an integral type (C/C++) |
| CPP-243 | Avoid using 'enum' types as operands for arithmetic contexts |
| CPP-240 | Avoid having boolean operators with non-boolean operands (C/C++) |
| CPP-241 | Avoid having expressions with bool type to be used as operands on operators other than =, &&, ||, !, ==, !=, the unary & operator, and the conditional operator |
| CPP-307 | Avoid dynamic_cast to convert current object to its derived class from its constructor or destructor |
| CPP-239 | Avoid delete operators to exit with an exception. |
| CPP-308 | Avoid move constructor and move assignment operator to exit with an exception |
| CPP-242 | Avoid using C-style and functional notation casts (C++) |
| CPP-244 | Handlers of a function-try-block implementation of a class constructor or destructor shall not reference non-static members from this class or its bases. |
2.2.0-alpha1
Resolved issues
The following issues have been fixed in this release of the analyzer.
Internal ID | Call ID | Summary | Notes |
---|
CPP-256 | - | CASTONCAST: access violation while parsing template | As a result of this fix, objects and links may increase. Also, as the files are not be skipped, analysis time may increase. |
CPP-257 | - | CASTONCAST: access violation while parsing function declaration | As a result of this fix, objects and links may increase. Also, as the files are not be skipped, analysis time may increase. |
CPP-271 | - | CASTONCAST: False violation for "All if … else if constructs shall be terminated with an else clause (C/C++)" if else is not delimited by {} |
|
CPP-274 | - | CASTONCAST: False violations for "Avoid non-void return type function without an explicit return of an expression (C/C++)" | In certain cases, constructors and destructors were detected as C++ Function instead of constructors and destructors. In such cases, false violations was displayed. This has been fixed. |
CPP-275 | - | CASTONCAST: False Violation for "Ensure Switch statements have at least 2 case clauses (C/C++)" with nested switch |
|
CPP-276 | - | CASTONCAST: False violation for "Avoid missing default in switch statements" with nested switch |
|
CPP-283 | - | Run-time exception while parsing struct when macro used in struct is not resolved | As a result of this fix, objects and links may increase. Also, as the files are not be skipped, analysis time may increase. |
CPP-284 | - | CASTONCAST: False violation for "Avoid using "sizeof" on expressions that contain side effects" when using C++ version of _countof |
|
New rules
The following new rules have been added in this release of the analyzer:
Rule ID | Rule Name |
---|
1065066 | Avoid having a method call or additional expressions in a statement using "+" or "--" operators (C/C+) |
1065068 | Avoid using Digraphs (C++) |
1065070 | Avoid using Trigraphs |
1065072 | Avoid using Unions |
1065074 | All constructors that are callable with a single argument of fundamental type shall be declared explicit. |
1065076 | Avoid declaring data members in non-POD classes as public or protected |
1065078 | A base class shall be declared virtual only if it is used in a diamond hierarchy |