Skip to content

Releases: SonarOpenCommunity/sonar-cxx

v0.9.2

14 Jan 20:34
Compare
Choose a tag to compare

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

SonarQube compability

Enhancements

  • preprocessor enhancements:
    • improve rescan and parameter extraction of cascaded macros (#302, #304)
    • support expressions in includes (#227, #312)
    • support named variadic arguments (#300, #301)
    • support uin64 values (#224, #308)
  • parser enhancements:
    • improve parsing speed (#299, #294, #260)
    • ignore C++ keywords in C files (sonar.cxx.cFilesPatterns) (#291, #345, #353)
    • support special meaning of token paste operator for GCC (#214, #298)
    • support Visual Studio inline assembler (#262, #333, #340)
    • support GCC case range extension (#235)
    • support ISO C99 compound literals (#237)
    • support ISO C99 designated initializers (#236)
  • metrics enhancements:
    • compute file and package dependencies (based on #include) ( #232, #292)
    • add metrics to count documented and undocumented APIs (#307, #318, #338)
    • add metric to count number of violations of each type (#177)
  • rule enhancements:
    • new rules to check for violations on cyclic package dependencies (#232, #292)
    • new rule to check for undocumented API (#307, #318, #338)
    • new rule FileRegularExpressionCheck: can be used to create rules which will be triggered when a file matches a given regular expression (#339, #179)
    • new rule LineRegularExpressionCheck: can be used to create rules which will be triggered when a line matches a given regular expression (#341, #179)
    • new rule FileEncodingCheck: check if all characters of a file can be encoded with the predefined charset (#223, #328)
    • new rule MissingIncludeFileCheck: generate a violation for missing include files (#52, #239)
    • new rule SwitchLastCaseIsDefaultCheck: test that a switch statement has 'default' label and that the 'default' is the final case (#320)
    • XPathCheck, FileRegularExpressionCheck , LineRegularExpressionCheck: new option allows Ant-style patterns to match a path (#335)
    • UselessParenthesesCheck: ignores generic code now (#231)
    • TooManyStatementsPerLineCheck: new option to allow case and break in one line (#230)
    • TooLongLineCheck: add a tab width setting to compute the length of the line more accurate (#233)
    • MagicNumberCheck: improve magic number detection - const variables are no more violations (#296, #332)
    • Unsupported Code Checker Custom Rules: make import of invalid XML rule files more stable (#254)
    • update Cppcheck messages for 1.67 release (#286, #264)
    • update PC-lint messages for 9.00l release candidate (#264)
  • coverage enhancements:
    • possibility to set coverage for source files without coverage report to zero to get more realistic Technical Debt values (sonar.cxx.coverage.forceZeroCoverage) (#218, #321)
    • Bullseye coverage reports: support coverage data on top level (src tag without folder tag) (#243, #250, #251)
    • Bullseye coverage reports: make path handling more robust (#273, #277)
  • add SQALE model definitions for the built-in checks (#199)

Bugfixes

  • Preprocessor does not support uint64 (#224)
  • No meaningful error message if force-included file cannot be found (#225)
  • Preprocessor does not support preprocessor expressions in includes (#227)
  • Bulleye coverage file is not parsed correctly (#243)
  • Server crash after updating 'External rules definition' with 0.9.1 (#253)
  • How can I find out whats going on (#260)
  • Unit test results not displayed in widget (#263)
  • Bullseye based coverage import reports 'cannot find the file ...' (#273)
  • Issues in digesting boost test results (#276)
  • Very slow performance of nested parenthesis (#294)
  • Const declarations are detected as magic numbers when not inside a function (#296)
  • Unable to parse named variadic arguments (#300)
  • Incomplete macro replacement rescanning (#302)
  • NPE in org.sonar.cxx.visitors.AbstractCxxPublicApiVisitor.visitMemberDeclarator (#327)
  • Cannot feed Valgrind report (#336)
  • The sslr-cxx-toolkit breaks when parsing some files (#374)
  • Wrong expansion of macros which dont contain whitespace after the parameter list (#380)

Thanks ....

go to all contributors (in alphabetical order):

@Bertk
@guwirth
@jmecosta
@lcintrat
@Typz
@Zetten

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

v0.9.1

17 Jun 11:30
Compare
Choose a tag to compare

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

Features / Enhancements:

  • Compatible and tested with SonarQube 3.7 to 4.2
  • Multi language support #130
  • Support case-insensitive file systems in all sensors #155
  • A set of builtin-checks like searching for ToDo, FixMe, NoSonar etc #96 #190 #167 #161 #157 #152 #151
  • Use SSLR V1.19.2 and sslr-squide-bridge V2.3 #91
  • Support of SonarQube 4.2 #180 #176 #181 #187 #198 #127
  • Parse error recovery #133
  • Force inclusion of a header file #85
  • Improved PC-Lint support #93
  • Additional SQALE definitions #105 #94 #62
  • Support of Visual Studio Code Coverage reports. #186
  • Attributted ATL support #174
  • Improve the code colorizer #172
  • Add support for Cppcheck 1.63 #166
  • Add support for Cppcheck 1.64 #165
  • Add support for Cppcheck's XML reports version 2 #158
  • Support GCC's statement expression. #144
  • Add support for feeding GCC's build warnings. #143
  • Support GCC's conditionals with omitted operands. #138
  • Support variadic macros. #137
  • Support for multi-module configurations #46

Bugfixes:

  • Do expand the macro arguments before expanding the macro body #194
  • Parse failure for c++11 for range loops #115
  • Prevent feeding of duplicated violations #110
  • PC-lint violations filename or line = "0" cannot be fed #81
  • Violations for files in project root folder cannot be fed #102
  • PC-lint improvements for messages without filename or line = "0" #81
  • Improper whitespace handling when hashhash'ing functionlike macro arguments #58

Thanks ....

go to all contributors:

@guwirth
@jmecosta
@Bertk
@Typz
@zjg

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

v0.9

15 Nov 11:40
Compare
Choose a tag to compare

Features / Enhancements:

  • Provide an AST using SSLR #59
  • Remap PC-lint MISRA violations into unique sonar rules #76
  • Improve association of sources to the test #75
  • Support for Intel Inspector via 'external rules'-mechanism #74
  • Add rules for CppCheck V1.58, V1.59 and V1.60 # 73
  • C++ Community Plugin not generating number of classes #70
  • Provide support for VC compiler warnings (C4001-C6535) #69
  • Replace cppncss with another tool (CCCC, CLOC) #67
  • Rule: C++ parsing error #61
  • Rule: custom/codebase specific checks via an XPath expression #60

Bugfixes:

  • C++ Community Plugin silently ignores unknown files in gcovr reports #72
  • Duplication detection doesnt work for source files which use line continuations #71
  • Analysis fails when additional tools sensor through exception (RATS, Vera++) #68
  • C++ Community Plugin mishandles file suffixes #66
  • Error when processing coverage reports containing a big number of hits #65
  • Crash with java.lang.IllegalArgumentException when analysing project #64
  • The report processing should be more stable / error tolerant #63