Skip to content

v2.15.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 15 Mar 20:13
· 6 commits to rc/2.15 since this release
c2aa225

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 void in C-style or assigned to std::ignore.
  • A0-1-4
    • Addressed false positives where the parameters are marked with attribute [[maybe_unused]], or either cast to void in C-style or assigned to std::ignore in the function body.
  • 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-2
    • CStyleCasts.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_weak and atomic_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_weak and atomic_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.5 in conjunction with a copy of the CodeQL standard library for C++ (github/codeql) set to the tag codeql-cli/v2.10.5.
    • Using the CodeQL Action or CodeQL runner with the codeql-bundle-20220908.

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