SonarQube C/C++/Objective-C 4.2 发布了,这是一个C/C++/Objective-C的插件,用于检查代码质量。 这个版本提供了以下的新规则: “nonnull” pointers should not be set to null (C, Bug) “switch” statements should cover all cases (C++, C, Objective-C, Code Smell, suspicious) File names should comply with a naming convention (C++, C, Objective-C, Code Smell, cert, convention) 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) Reference types should not be qualified with “const” or “volatile” (C++, Code Smell, cert, lock-in, unused) 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 你可以通过升级中心进行升级 SonarQube C/C++/Objective-C 4.2 发布下载地址