github SonarOpenCommunity/sonar-cxx cxx-0.9.4
v0.9.4

8 years ago

We are pleased to announce the release of the SonarQube C++ Community Plugin version 0.9.4.
See lists below for features added and bugs fixed in this release.

SonarQube compability

Enhancements

  • parser enhancements:
    • add C++/CLI support (#539)
    • complete C++11 and C++14 support (#507,#508, #556, #554, #560, #561, #562, #563, #564, #565, #566, #567, #568, #569, #570)
      • C++11: user defined literals (#564, #590)
      • C++11: raw string literale (#563, #580)
      • C++11: variadic template (#562, #589)
      • C++11: long long & trailing return type (#561)
      • C++11: attributes (#560)
      • C++14: standard user defined literals (#570)
      • C++14: lambda capture expressions (#569)
      • C++14: generic lambda (#568)
      • C++14: digit separators (#567)
      • C++14: binary literals (#566)
      • C++14: attribute deprecated with user defined message (#565, #571)
      • C++14: support lambda capture expressions (#574, #569, #568)
      • C++14: support binary literals (#572)
      • C++14: add digit separator support (#591)
      • add C++11/C++14 tests (#532)
  • metrics enhancements:
    • public API documentation metric: supports defaulted and deleted functions now (#558, #584)
  • rule enhancements:
    • CppCheck 1.70 support (#623, #627)
    • Visual Studio 2015 compiler warning support (#622, #626)
    • add tags to CXX rules (#636, #637)
    • NestedStatementsCheck: add new check for nesting level (#517)
    • additional checks for naming convention (#541)
      • FileNameCheck: file name check support (#456)
      • MethodNameCheck: method name check support (#455)
      • FunctionNameCheck: function name check support (#454)
      • ClassNameCheck: class name check support (#453)
    • ClassComplexityCheck: class complexity check support (#452, #541)
    • MagicNumberCheck : constexpr support (#606, #607)
    • TabCharacterCheck: add switch to report issues per line (#390, #553)
    • MagicNumberCheck: support unsigned values (#542)
    • FileRegularExpressionCheck/LineRegularExpression: add flags to negate search results (#534, #536)
  • coverage enhancements:
    • forceZeroCoverage: Depends on which key (sonar.cxx.coverage.reportPath, sonar.cxx.coverage.itReportPath, sonar.cxx.coverage.overallReportPath) is defined in the sonar-project.properties file now. (#633, #634)
  • integration tests:
    • added AppVeyour CI for Windows build (#651)
    • improved integration tests (#538, #658)
    • added SQ 5.2 to Travis build (#648, #649)
    • use Boost 1.55 for integration test (old was 1.46) (#555)
  • other:
    • improved VC++ build log parser (#501, #537)
    • support team builds now (#619)
    • update deprecated APIs and components (#647, #632, #629, #631, #642)
    • source code highlighting updated (#645, #644)
    • SQALE support for 'other' rules: sonar.cxx.other.sqales (#467, #529)
    • default values for reportPath values removed to get meaningful error messages (#331, #550)

Bugfixes

  • TooManyStatementsPerLineCheck creates false positive with type alias(#656, #659)
  • Execute decorators failing(#625, #631)
  • ERROR - path normalizing of... (#618)
  • PC-lint report may create SonarException in decorator (#600, #631)
  • parser error if identifier is also a token (CxxKeyword) (#586)
  • Type alias (using =) does not generate public API documentation violation (#577)
  • Public API documentaton violation generated for friend declaration (#576)
  • Non-type template parameters (#573)
  • ReservedNamesCheck exception #define _ ... (#543)
  • AST parser error - namespace alias '::TimerBase' (#526)
  • AST parser error 'auto Timer::writeTimeToLogFile() -> void {}' (#525)
  • AST parser error 'for (const std::string &i : v)' (#511)
  • AST parser does not support function trailing return type (#510)
  • preprocessor fails to extract filename from macro (#500)
  • Problem with Travis (#494)
  • Indentation Check with Namespace (#441)
  • Error with includes (#437)
  • Relative paths in Cobertura reports are treated relative to the current directory instead of the projectBaseDir (#426)
  • fix typos in pc-lint rules (#513)
  • Fix cpplint's NOLINT() with new rule names (#635)
  • Fix NOLINT(*) regression (#655)
  • fix normalizePathFull (#620)
  • Treat relative paths in Cobertura reports as relative to the project … (#613)
  • limit report line number (#611, #631)
  • stringinize with string prefix (#603)
  • Support C++/CLI typeid (#596, #582)
  • Handle expressions in non-type template parameters, fix (#573)
  • non-type template parameters fix (#592)
  • binary literals have no suffix (#588)
  • fix for trailing return types (#587)
  • Support for friend declaration API documentation (#583)
  • Generate public API documentation violation for alias declaration (#581)
  • Fixing with define _ (#544)
  • enhance handling of trailing return type (#528)
  • fix for range-based for loop (C++11) (#523)
  • fix up sqale (#521)
  • fix sqale definitions (#518)
  • Add fallback for 'reactor' report search in CxxCoverageSensor (#516)
  • fix typos in pc-lint rules (#513)
  • Improve namespace indentation check (#506)
  • Fix hashhash related parsing problem (#459)
  • sonar-cxx 0.9.3 doesn't show technical debt (issues) with sonar 4.5.x (#519)
  • permission denied on reports (#267, #550)

Know Issues

SonarQube 5.2 is only partially supported: next version will have full SQ 5.2 support.
For an up to date list of known issues see the issue tracker

Thanks ....

go to all contributors (in alphabetical order):

@ametselaar
@Bertk
@cbagwell
@guwirth
@jmecosta
@lcintrat
@Zetten

... and all people which were active on the Issue Tracker!

Don't miss a new sonar-cxx release

NewReleases is sending notifications on new releases.