Release Notes - SonarCFamily - Version 6.20 - HTML format

Bug

  • [CPP-3058] - build-wrapper: Fix command line splitting
  • [CPP-3064] - MSVC driver: Skip empty entries from INCLUDE environment variable

New Feature

  • [CPP-2914] - Rule S6191: "volatile" types should not be used in compound operations
  • [CPP-2937] - Rule S6186: Spaceship "<=>" operator should not be defined in addition to regular comparison operators
  • [CPP-2938] - Rule S6187: Only spaceship "<=>" operator should be defined instead of multiple comparison operators
  • [CPP-3075] - Enable C++20 experimental support for SonarQube 8.9 LTS

Improvement

  • [CPP-1689] - S104 S138 S1188: Update "too many lines of code" rules to use LoC
  • [CPP-2707] - Upgrade Clang frontend to version 12.0.0
  • [CPP-2913] - S5019: Implicit capture of 'this' via '[=]' is deprecated
  • [CPP-2916] - S5812: Update with Nested Inline Namespaces
  • [CPP-2945] - S868: Exclude concepts from the rule
  • [CPP-2956] - S5827: Using a concept auto for a variable should not trigger the rule
  • [CPP-3013] - S1481 S3608 S5019 S5495 S6197: Add algorithms from C++20
  • [CPP-3022] - Fix false negatives due to spaceship operator
  • [CPP-3036] - S6023: support C++20's rewritten operators; S6178: a test case for rewritten operator "!="
  • [CPP-3048] - S1764: Add support for rewritten "operator!="
  • [CPP-3049] - S6171: Fix broken reporting location for rewritten == and !=
  • [CPP-3060] - S106: Make reporting message stable in the presence of an inline namespace

False-Positive

  • [CPP-3035] - S5408: Fix false-positives with global inline constexpr variables
  • [CPP-3037] - S127: Fix FP for conditions using rewritten expressions (!= rewritten through ==, < rewritten through <=>)
  • [CPP-3038] - S864: FP for rewritten AST for operator<=>
  • [CPP-3065] - S4962: Fix false-positive on comparing with ordering types
  • [CPP-3071] - S936: Fix false-positive on conversion from noexcept function

False Negative

  • [CPP-2915] - S5658: Array comparisons are deprecated
  • [CPP-3040] - S868/LogicalExpressionOperands: FN for expressions involving rewritten operators
  • [CPP-3041] - S5566: FN for loops with rewritten AST in conditions (for "!=" rewritten through "==")
  • [CPP-3055] - S5180: Fix false-negatives on C functions imported into std
  • [CPP-3059] - S1079: Fix false-negatives on strictly C99 compatbile glibc
  • [CPP-3061] - S6188: Fix false-negatives when iterator has class type
  • [CPP-3063] - S5950: Fix false-negative when smart-ptr construct has default argument
  • [CPP-3067] - S1705: Fix false-negative for post-increments invoked on classes
  • [CPP-3069] - S5507: calls to operator*() and get() for shared_ptr are not detected with libstdc++10

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.