v2.15.0
Pre-release
Pre-release
Release summary
- New queries added for the following rule packages: EssentialTypes, Memory1
- The following changes have been made for this release:
A13-5-2- address a false positive where lambda expressions with empty captures were being flagged as having a non-compliant conversion operator.A0-1-2- Addressed false positives where the return values are cast to
voidin C-style or assigned tostd::ignore.
- Addressed false positives where the return values are cast to
A0-1-4- Addressed false positives where the parameters are marked with attribute
[[maybe_unused]], or either cast tovoidin C-style or assigned tostd::ignorein the function body.
- Addressed false positives where the parameters are marked with attribute
RULE-8-4-CompatibleDeclarationObjectDefined.ql- Update rule implementation based on changes in the CodeQL libraries.
- Updated the CodeQL version to
2.10.5. A2-10-4-IdentifierNameOfStaticFunctionReusedInNamespace.ql:- Reuse of an identifier name of a static function in a namespace is now detected.
A2-10-4-IdentifierNameOfStaticNonMemberObjectReusedInNamespace.ql:- Reuse of an identifier name of a static non-member object in a namespace is now detected.
A2-10-5-IdentifierNameOfStaticNonMemberObjectWithExternalOrInternalLinkageIsReused.ql:- Reuse of an identifier name of a static non-member object with internal linkage in a namespace is now detected.
A5-2-2CStyleCasts.ql- exclude template parameters to avoid false positives when using the "functional notation" syntax. In addition, provide a greater explanation on limitations of this query.
- Improved alert message to avoid reporting locations in standard header files, which cannot be viewed in Code Scanning, in the following queries:
-Rule 21.4
-Rule 21.5
-Rule 21.6
-Rule 21.7
-Rule 21.8
-Rule 21.9
-Rule 21.10
-Rule 21.11
-Rule 21.12
-Rule 21.21
A13-2-2-BinaryOperatorAndBitwiseOperatorReturnAPrvalue.ql- The formatting of the query output message has been changed and operators are now displayed starting with the return type instead of ending with it.
CON41-C: Refactored to address compiler compatibility issues. More accurate
modeling of cases where macros are modeled against other macros such as
atomic_compare_exchange_weakandatomic_store.CON40-C: Refactored to address compiler compatibility issues. More accurate
modeling of cases where macros are modeled against other macros such as
atomic_compare_exchange_weakandatomic_store.
STR37-C- reduce false negatives by improving detection when the<ctype>functions are implemented using macros.
Supported versions
- The LGTM pack is not supported on any released version of LGTM without support from GitHub Professional Services.
- The Code Scanning pack is supported when:
- Using the CodeQL CLI version
2.10.5in conjunction with a copy of the CodeQL standard library for C++ (github/codeql) set to the tagcodeql-cli/v2.10.5. - Using the CodeQL Action or CodeQL runner with the codeql-bundle-20220908.
- Using the CodeQL CLI version
Appendix: MISRA-C-2012 new queries
New queries added to cover the following rules:
- RULE-9-2 -
InitializerForAggregateOrUnionNotEnclosedInBraces.ql - RULE-9-3 -
PartiallyInitializedArrayWithExplicitInitializers.ql - RULE-9-4 -
RepeatedInitializationOfAggregateObjectElement.ql - RULE-10-1 -
OperandsOfAnInappropriateEssentialType.ql,PointerTypeOnLogicalOperator.ql - RULE-10-2 -
AdditionSubtractionOnEssentiallyCharType.ql - RULE-10-3 -
AssignmentOfIncompatibleEssentialType.ql - RULE-10-4 -
OperandsWithMismatchedEssentialTypeCategory.ql - RULE-10-5 -
InappropriateEssentialTypeCast.ql - RULE-10-6 -
AssignmentToWiderEssentialType.ql - RULE-10-7 -
ImplicitConversionOfCompositeExpression.ql - RULE-10-8 -
InappropriateCastOfCompositeExpression.ql - RULE-14-1 -
LoopOverEssentiallyFloatType.ql - RULE-21-14 -
MemcmpUsedToCompareNullTerminatedStrings.ql - RULE-21-16 -
MemcmpOnInappropriateEssentialTypeArgs.ql