发布于 2016-10-05 23:02:03 | 232 次阅读 | 评论: 0 | 来源: 网友投递
SonarQube代码质量管理平台
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测
SonarQube C/C++/Objective-C 4.2 发布了,这是一个C/C++/Objective-C的插件,用于检查代码质量。
这个版本提供了以下的新规则:
“switch” statements should cover all cases (C++, C, Objective-C, Code Smell, suspicious)
GNU extensions should not be used (C++, C, Objective-C, Code Smell, lock-in, obsolete)
Overriding virtual functions should be declared with “virtual” (C++, Code Smell, misra)
Unused function parameters should be removed (C++, Code Smell, cert, misra, unused)
Virtual functions should not have default arguments (C++, Code Smell, api-design, cert, pitfall)
更新内容:
Bug
[CPP-1435] - "nullptr" can be used as identifier in Microsoft Visual Studio <= 9.0
[CPP-1436] - "_Complex" can be used as identifier in Microsoft Visual Studio
[CPP-1503] - "inline" can be used as identifier in C with Microsoft Visual Studio <= 12.0
[CPP-1540] - Fix ClassCastException in DynamicMemoryAllocationCheck
[CPP-1569] - CFG: should properly handle expression compound statement
[CPP-1596] - Grammar: should be possible to use more keywords as selectors in Objective-C
[CPP-1600] - Preprocessor: fix handling of escape sequences in character literals
[CPP-1601] - Grammar: add GNU old-style field designator extension
[CPP-1610] - Rule: IdentifierLongerThan31 (S799) should raise issues only for declared identifiers
[CPP-1616] - Fix broken link in description of S3576
[CPP-1617] - Sema Objective-C: fix IllegalStateException
[CPP-1626] - "_Bool" is not a keyword in C++
[CPP-1631] - build-wrapper unix: should save and restore path only to its own library
[CPP-1635] - build-wrapper unix: fix monitoring in case of use of empty string as value for DYLD_INSERT_LIBRARIES environment variable
改进
[CPP-1298] - build-wrapper OS X: add support for "restricted" binaries (introduced in El Capitan as part of SIP)
[CPP-1304] - build-wrapper unix: child processes should not see our library in LD_PRELOAD or DYLD_INSERT_LIBRARIES environment variables
[CPP-1520] - Sema: add attribute "nonnull" information to symbols
[CPP-1531] - Improve SingleDeclarationPerStatement (S1004) issue location
[CPP-1568] - Fix false-positives in UnusedExpressionStatementCheck (S905)
[CPP-1578] - Update S1749: "const" should be placed before type name but after "typedef"
[CPP-1581] - Fix false-positives in TrailingCommentCheck (S139)
[CPP-1615] - Fix false-negatives in S3698 and S1181
[CPP-1619] - Add warning in case of usage of property "sonar.cfamily.predefinedMacros" or "sonar.cfamily.library.directories" together with "sonar.cfamily.build-wrapper-output"
[CPP-1624] - Fix false-negatives in S1749
[CPP-1625] - Rule type should be set explicitly
[CPP-1628] - Fix false-positives in S1764
[CPP-1632] - Fix false-positives in S1764: exclude "1 << 1"
[CPP-1634] - SE: functions with "_Noreturn" specifier should stop execution
[CPP-1636] - Support Clang precompiled header files produced with "-fmodule-format=obj"
新特性
[CPP-850] - Add mechanism for creation of reproducer of failure of analysis
[CPP-934] - Semantic Analysis: add a mechanism to calculate value of constant expression
[CPP-999] - C, C++ Rule: Unused function parameters should be removed
[CPP-1302] - C++ Rule: Overriding virtual functions should be declared with "virtual"
[CPP-1432] - Rule: "switch" statements should cover all cases
[CPP-1521] - C rule: "nonnull" pointers should not be set to null
[CPP-1534] - C++ Rule: Virtual functions should not have default arguments
[CPP-1586] - Rule: GNU extensions should not be used
[CPP-1605] - Import of coverage reports produced by llvm-cov
[CPP-1618] - C++ Rule: Reference types should not be qualified with "const" or "volatile"
[CPP-1622] - Rule: File names should comply with a naming convention
你可以通过升级中心进行升级