Release Notes - SonarCFamily - Version 6.4 - HTML format

Documentation

  • [CPP-2244] - Update MISRA related RSPECs with a disclaimer banner

False-Positive

  • [CPP-2227] - S1242: False positive when covariant return type is used

Bug

  • [CPP-2234] - "*.c" files compiled with "c++" compiler should be treated with C++ language, not C
  • [CPP-2236] - Support of the -mrtp option does not define/undefines all required macros
  • [CPP-2237] - Add support for "-mthumb" and "-marm" when probing compiler
  • [CPP-2242] - Analyzer should not crash when not all target info macros are present
  • [CPP-2252] - Fix computation of complexity and functions metrics for Objective-C
  • [CPP-2256] - FunctionSinglePointOfExit(S1005): Fix crash when function-try-block is empty and analyze function-catch-block
  • [CPP-2257] - build-wrapper windows: Should not capture "uicc.exe" calls as IAR compiler
  • [CPP-2258] - Equivalence: Fix crash when comparing two Objective-C "@catch" with ellipsis

New Feature

  • [CPP-2173] - Rule S994: A variable which is not modified shall be const qualified
  • [CPP-2174] - Extend S995 so that it covers C++
  • [CPP-2175] - Rule S1002: Multiple declarations for an identifier in the same namespace shall not straddle a using-declaration for that identifier
  • [CPP-2198] - Rule S1042: 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
  • [CPP-2203] - Rule S963: In the definition of a function-like macro, each instance of a parameter shall be enclosed in parentheses, unless it is used as the operand of # or ##
  • [CPP-2205] - Rule S5350: Pointer and reference local variables should be "const" if the corresponding object is not modified
  • [CPP-2218] - Rule S5356: An object with pointer type shall not be converted to an unrelated pointer type, either directly or indirectly
  • [CPP-2220] - Rule S5357: An object with integral type or pointer to void type shall not be converted to an object with pointer type
  • [CPP-2221] - Rule S5358: A cast should not convert a pointer type to an integral type
  • [CPP-2222] - Rule S5359: Each operand of the ! operator, the logical && or the logical || operators shall have type bool
  • [CPP-2246] - Rule S5416: "using" should be preferred to "typedef" for type aliasing
  • [CPP-2248] - Rule S5408: A "constexpr" function should not be declared "inline"
  • [CPP-2251] - Rule S5421: Non-const global variables should not be used
  • [CPP-2262] - S5018: Update to also flag swap operations that are not noexcept

Task

  • [CPP-2030] - Stop feeding "comment_lines_data"
  • [CPP-2229] - Integrate GTest framework in SonarClang

Improvement

  • [CPP-2230] - Add a message in the log when a file is skipped because it is C++/CX or C++/CLI
  • [CPP-2238] - Gracefully fail when the probe did not work correctly
  • [CPP-2241] - build-wrapper windows: Open and close json and log files once per execution
  • [CPP-2249] - build-wrapper *nix: Open and close json and log files once per execution
  • [CPP-2253] - Handle compiler command lines that contain wildcards (*.cpp)
  • [CPP-2269] - Fail the analysis when "sonar.cfamily.build-wrapper-output" is specified but 0 files are analyzed
  • [CPP-2270] - Do not crash when a decl appears in builtin section

Edit/Copy Release Notes

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