SonarQube C/C++/Objective C 3.10 发布,这是 Sonar 平台用来检查 C/C++/Objective-C 代码的插件。
该版本改进内容包括:
Release Notes - C Family - Version 3.10
Bug
[CPP-1297] - build-wrapper linux: race condition
[CPP-1316] - Preprocessor: Microsoft Compiler expands __VA_ARGS__ differently
[CPP-1360] - Analysed files lookup should properly behave when using build-wrapper, symlinks and modules
[CPP-1368] - Grammar: get rid of ambiguity which causes IllegalStateException during semantic analysis
[CPP-1369] - Grammar: get rid of unhandled ambiguity in member-specification
[CPP-1372] - build-wrapper windows: exit code should not be zero, if wrapped command exits with non zero code
[CPP-1373] - Sema C++: improve resolution of ambiguity - declaration vs expression
[CPP-1381] - Sema C++: fix resolution of ambiguity between function, constructor and variable declaration
[CPP-1384] - Sema C++: fix resolution of ambiguity - constructor vs function call vs greater-than operator
[CPP-1385] - Sema C++: base classes should be processed when class defined after declaration
[CPP-1402] - Sema C++: fix processing of elaborated-type-specifier
Improvement
[CPP-827] - Show progress of analysis, when results of build-wrapper are used
[CPP-1120] - Remove support of Cppcheck
[CPP-1325] - Syntax Tree: preserve virt-specifier
[CPP-1330] - Support more MSVC compiler options and predefined macros
[CPP-1334] - SonarQube analysis should fail by default when analysing a C/C++/Objective-C project without using the build-wrapper
[CPP-1345] - False positive: ClassExplicitConstructorCheck with copy/move constructor
[CPP-1354] - Sema: preserve 'static' and 'virtual' specifiers for function definitions
[CPP-1358] - Fix false-positives in GlobalNamespaceMembers
[CPP-1367] - Sema C++: symbols for templates
[CPP-1377] - Sema C++: improve resolution of ambiguity - declaration-statement vs expression-statement
[CPP-1378] - Grammar: reject declaration-statement without type-specifiers
New Feature
[CPP-1052] - Rule: Local variables should not have the same name as class fields
[CPP-1197] - Rule: Unused local variables should be removed
[CPP-1273] - C++ and Objective-C Rule: Dead Stores should be removed
[CPP-1274] - C Rule: Dead Stores should be removed
[CPP-1314] - C++ Rule: "override" or "final" should be used instead of "virtual"
[CPP-1359] - Rule: The "register" storage class specifier should not be used
Task
[CPP-722] - Move the declaration of Cppcheck rules and the report import mechanism into a new SQ Cppcheck plugin