Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

2.2.0-beta1

Resolved Issues

The following issues have been fixed in this release of the analyzer.

Internal IDCall IDSummaryNotes
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-175Avoid performing conversion from a function pointer to any other type (C/C++)

CPP-171Avoid casting and converting a pointer type to an integral type (C/C++)

CPP-243Avoid using 'enum' types as operands for arithmetic contexts

CPP-240Avoid having boolean operators with non-boolean operands (C/C++)

CPP-241Avoid having expressions with bool type to be used as operands on operators other than =, &&, ||, !, ==, !=, the unary & operator, and the conditional operator

CPP-307Avoid dynamic_cast to convert current object to its derived class from its constructor or destructor

CPP-239Avoid delete operators to exit with an exception.

CPP-308Avoid move constructor and move assignment operator to exit with an exception

CPP-242Avoid 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 IDCall IDSummaryNotes
CPP-256-CASTONCAST: access violation while parsing templateAs 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 declarationAs 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 resolvedAs 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 IDRule Name
1065066Avoid having  a method call or additional expressions in a statement using "+" or "--" operators (C/C+)
1065068Avoid using Digraphs (C++)
1065070Avoid using Trigraphs
1065072Avoid using Unions
1065074All constructors that are callable with a single argument of fundamental type shall be declared explicit.
1065076Avoid declaring data members in non-POD classes as public or protected
1065078A base class shall be declared virtual only if it is used in a diamond hierarchy
  • No labels