./lang/clang-tools-extra, Extra Clang tools

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 10.0.0, Package name: clang-tools-extra-10.0.0, Maintainer: pkgsrc-users

Extra tools built using Clang's tooling APIs.

Required to run:
[textproc/libxml2] [lang/clang] [lang/llvm] [lang/python37]

Required to build:
[pkgtools/cwrappers] [lang/gcc5]

Master sites:

Version history: (Expand)

CVS history: (Expand)

   2020-07-26 21:20:14 by Adam Ciarcinski | Files touched by this commit (14) | Package updated
Log message:
llvm: updated to 10.0.1

Bug fix release
   2020-07-01 16:50:33 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
clang-tools-extra: static analyzer is on by default; bump revision
   2020-06-02 10:25:05 by Adam Ciarcinski | Files touched by this commit (1689)
Log message:
Revbump for icu
   2020-05-17 00:31:50 by Thomas Klausner | Files touched by this commit (1) | Package updated
Log message:
clang-tools-extra: update to 10.0.0nb1.

Add missing dependency on clang for libclang-cpp.so.
   2020-04-18 09:58:50 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
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 \ 

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 \ 

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
   2019-12-29 16:31:23 by Adam Ciarcinski | Files touched by this commit (35) | Package updated
Log message:
llvm: updated to 9.0.1

9.0.1 is a bug-fix release.
   2019-10-24 13:40:00 by Tobias Nygren | Files touched by this commit (5) | Package updated
Log message:
catch up with llvm relicensing and bump PKGREVISIONs
   2019-10-19 15:58:10 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
clang-tools-extra: updated to 9.0.0

Improvements to clangd
* Background indexing is on by default
When using clangd, it will build an index of your code base (all files listed in \ 
your compile database). This index enables go-to-definition, find-references, \ 
and even code completion to find symbols across your project.
This feature can consume a lot of CPU. It can be disabled using the \ 
--background-index=false flag, and respects -j to use fewer threads. The index \ 
is written to .clangd/index in the project root.

* Contextual code actions
Extract variable, expand auto, expand macro, convert string to raw string. More \ 
to come in the future!

* Clang-tidy warnings are available
These will be produced for projects that have a .clang-tidy file in their source \ 
tree, as described in the clang-tidy documentation.

* Improved diagnostics
Errors from headers are now shown (on the #including line). The message now \ 
indicates if fixes are available. Navigation between errors and associated notes \ 
is improved (for editors that support Diagnostic.relatedInformation).

* Suggested includes
When a class or other name is not found, clangd may suggest to fix this by \ 
adding the corresponding #include directive.

* Semantic highlighting
clangd can push syntax information to the editor, allowing it to highlight e.g. \ 
member variables differently from locals. (requires editor support)
This implements the proposed protocol from \ 
https://github.com/microsoft/vscode-lan … e/pull/367

* Type hierachy
Navigation to base/derived types is possible in editors that support the \ 
proposed protocol from \ 
https://github.com/microsoft/vscode-lan … e/pull/426

* Improvements to include insertion
Only headers with #include-guards will be inserted, and the feature can be \ 
disabled with the --header-insertion=never flag.
Standard library headers should now be inserted more accurately, particularly \ 
for C++ other than libstdc++, and for the C standard library.

* Code completion
Overloads are bundled into a single completion item by default. (for editors \ 
that support signature-help).
Redundant const/non-const overloads are no longer shown.
Before clangd is warmed up (during preamble build), limited identifier- and \ 
index-based code completion is available.

* Format-on-type
A new implementation of format-on-type is triggered by hitting enter: it \ 
attempts to reformat the previous line and reindent the new line. (Requires \ 
editor support).

* Toolchain header detection
Projects that use an embedded gcc toolchain may only work when used with the \ 
corresponding standard library. clangd can now query the toolchain to find these \ 
headers. The compilation database must correctly specify this toolchain, and the \ 
--query-driver=/path/to/toolchain/bin/* flag must be passed to clangd.

* Miscellaneous improvements
Hover now produces richer Markdown-formatted text (for supported editors).
Rename is safer and more helpful, though is still within one file only.
Files without extensions (e.g. C++ standard library) are handled better.
clangd can understand offsets in UTF-8 or UTF-32 through command-line flags or \ 
protocol extensions. (Useful with editors/platforms that don’t speak UTF-16).
Editors that support edits near the cursor in code-completion can set the \ 
textDocument.completion.editsNearCursor capability to true, and clangd will \ 
provide completions that correct . to ->, and vice-versa.

Improvements to clang-tidy

New OpenMP module.
New abseil-duration-addition check.
New abseil-duration-conversion-cast check.
New abseil-duration-unnecessary-conversion check.
New abseil-time-comparison check.
New abseil-time-subtraction check.
New android-cloexec-pipe check.
New android-cloexec-pipe2 check.
New bugprone-branch-clone check.
New bugprone-posix-return check.
New bugprone-unhandled-self-assignment check.
New fuchsia-default-arguments-calls check.
New fuchsia-default-arguments-declarations check.
New google-objc-avoid-nsobject-new check.
New google-readability-avoid-underscore-in-googletest-name check.
New llvm-prefer-isa-or-dyn-cast-in-conditionals check.
New modernize-use-trailing-return-type check.
New objc-super-self check.
New openmp-exception-escape check.
New openmp-use-default-none check.
New readability-convert-member-functions-to-static check.
New alias cert-oop54-cpp to bugprone-unhandled-self-assignment was added.
New alias cppcoreguidelines-explicit-virtual-functions to modernize-use-override \ 
was added.
Added UseAssignment option to cppcoreguidelines-pro-type-member-init
The fuchsia-default-arguments check has been removed.
The google-runtime-int check has been disabled in Objective-C++.
The modernize-use-override now supports OverrideSpelling and FinalSpelling options.
The misc-throw-by-value-catch-by-reference now supports WarnOnLargeObject and \ 
MaxSize options to warn on any large trivial object caught by value.
The Acronyms and IncludeDefaultAcronyms options for the \ 
objc-property-declaration check have been removed.

Improvements to pp-trace
* Added a new option -callbacks to filter preprocessor callbacks. It replaces \ 
the -ignore option.