Path to this page:
Subject: CVS commit: pkgsrc/lang/clang-tools-extra
From: Adam Ciarcinski
Date: 2020-04-18 09:58:50
Message id: 20200418075850.1802BFB27@cvs.NetBSD.org
Log Message:
clang-tools-extra: updated to 10.0.0
What’s New in Extra Clang Tools 10.0.0?
Some of the major new features and improvements to Extra Clang Tools are listed \
here. Generic improvements to Extra Clang Tools as a whole or to its underlying \
infrastructure are described first, followed by tool-specific sections.
Improvements to clangd
clangd documentation is now found at https://clangd.llvm.org/
Go-to-definition, hover, find-references etc use a new mechanism to identify \
what is under the cursor, which is (hopefully) more consistent and accurate.
clangd should be able to reliably locate the standard library/SDK on macOS.
Shutdown more cleanly on receiving a signal. In particular temporary PCH files \
should be cleaned up.
Find references now works on macros.
clangd can be more easily used remotely or in a docker container.
The --path-mappings flag translates between local and remote paths.
Experimental support for renaming across files (behind the --cross-file-rename flag).
Hover now exposes more information, including the type of symbols and the value \
of constant expressions.
Go to definition now works in dependent code in more cases, by assuming the \
primary template is used.
Better recovery and reporting when the compile command for a file can’t be \
fully parsed.
Switch header/source (an extension) now uses index information in addition to \
filename heuristics, and is much more robust.
Semantic selection (expand/contract selection) is supported.
Semantic highlighting is more robust, highlights more types of tokens, and as an \
extension provides information about inactive preprocessor regions.
Code completion results now include an extension field score.
This allows clients to incorporate clangd quality signals when re-ranking code \
completion after client-side fuzzy-matching.
New refactorings: define function out-of-line, define function in-line, extract \
function, remove using namespace directive, localize Objective-C string.
Bug fixes and performance improvements :-)
Improvements to clang-doc
clang-doc now generates documentation in HTML format.
Improvements to clang-tidy
New checks
New bugprone-bad-signal-to-kill-thread check.
Finds pthread_kill function calls when a thread is terminated by raising SIGTERM \
signal.
New bugprone-dynamic-static-initializers check.
Finds instances where variables with static storage are initialized dynamically \
in header files.
New bugprone-infinite-loop check.
Finds obvious infinite loops (loops where the condition variable is not changed \
at all).
New bugprone-not-null-terminated-result check
Finds function calls where it is possible to cause a not null-terminated result.
New bugprone-signed-char-misuse check.
Finds signed char to integer conversions which might indicate a programming error.
New cert-mem57-cpp check.
Checks if an object of type with extended alignment is allocated by using the \
default operator new.
New cert-oop58-cpp check.
Finds assignments to the copied object and its direct or indirect members in \
copy constructors and copy assignment operators.
New cppcoreguidelines-init-variables check.
Checks whether there are local variables that are declared without an initial value.
New darwin-dispatch-once-nonstatic check.
Finds declarations of dispatch_once_t variables without static or global storage.
New google-upgrade-googletest-case check.
Finds uses of deprecated Googletest APIs with names containing case and replaces \
them with equivalent APIs with suite.
New linuxkernel-must-use-errs check.
Checks Linux kernel code to see if it uses the results from the functions in \
linux/err.h.
New llvm-prefer-register-over-unsigned check.
Finds historical use of unsigned to hold vregs and physregs and rewrites them to \
use Register
New objc-missing-hash check.
Finds Objective-C implementations that implement -isEqual: without also \
appropriately implementing -hash.
New performance-no-automatic-move check.
Finds local variables that cannot be automatically moved due to constness.
New performance-trivially-destructible check.
Finds types that could be made trivially-destructible by removing out-of-line \
defaulted destructor declarations.
New readability-make-member-function-const check.
Finds non-static member functions that can be made const because the functions \
don’t use this in a non-const way.
New readability-qualified-auto check.
Adds pointer and const qualifications to auto-typed variables that are deduced \
to pointers and const pointers.
New readability-redundant-access-specifiers check.
Finds classes, structs, and unions that contain redundant member access specifiers.
New aliases
New alias cert-pos44-c to bugprone-bad-signal-to-kill-thread was added.
New alias llvm-qualified-auto to readability-qualified-auto was added.
Changes in existing checks
Improved bugprone-posix-return check.
Now also checks if any calls to pthread_* functions expect negative return values.
Improved hicpp-signed-bitwise check.
The check now supports the IgnorePositiveIntegerLiterals option.
Improved modernize-avoid-bind check.
The check now supports supports diagnosing and fixing arbitrary callables \
instead of only simple free functions. The PermissiveParameterList option has \
also been added to address situations where the existing fix-it logic would \
sometimes generate code that no longer compiles.
The modernize-use-equals-default fix no longer adds semicolons where they would \
be redundant.
Improved modernize-use-override check.
The check now supports the AllowOverrideAndFinal option to eliminate conflicts \
with gcc -Wsuggest-override or gcc -Werror=suggest-override.
The modernize-use-using check now converts typedefs containing struct \
definitions and multiple comma-separated types.
Improved readability-magic-numbers check.
The check now supports the IgnoreBitFieldsWidths option to suppress the warning \
for numbers used to specify bit field widths.
The check was updated to eliminate some false positives (such as using class \
enumeration as non-type template parameters, or the synthetically computed \
length of a static user string literal.)
Improved readability-redundant-member-init check.
The check now supports the IgnoreBaseInCopyConstructors option to avoid “base \
class ‘Foo’ should be explicitly initialized in the copy constructor” \
warnings or errors with gcc -Wextra or gcc -Werror=extra.
The readability-redundant-string-init check now supports a StringNames option \
enabling its application to custom string classes.
Renamed checks
The ‘objc-avoid-spinlock’ check was renamed to darwin-avoid-spinlock
Files: