2020-05-17 00:31:50 by Thomas Klausner | Files touched by this commit (1) | |
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) | |
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
|
2019-12-29 16:31:23 by Adam Ciarcinski | Files touched by this commit (35) | |
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) |
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) | |
Log message:
clang-tools-extra: updated to 9.0.0
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-languageserver-node/pull/367
* Type hierachy
Navigation to base/derived types is possible in editors that support the \
proposed protocol from \
https://github.com/microsoft/vscode-languageserver-node/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.
|
2019-08-05 21:06:50 by Adam Ciarcinski | Files touched by this commit (23) | |
Log message:
llvm: updated to 8.0.1
LLVM 8.0.1 is now available! Download it now, or read the release notes.
This release contains bug-fixes for the LLVM 8.0.0 release. This
release is API and ABI compatible with 8.0.0.
|
2019-06-02 10:41:18 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
clang-tools-extra: updated to 8.0.0
Clang Tools 8.0.0:
Improvements to clangd
clangd now adds namespace qualifiers in code completion, for example, if you \
type “vec”, the list of completions will include “std::vector”.
When a global index is available, clangd will use it to augment the results of \
“go to definition” and “find references” queries. Global index also \
enables global code completion, which suggests symbols that are not imported in \
the current file and automatically inserts the missing #include directives.
clangd stores the symbol index on disk in a new compact binary serialization \
format. It is 10x more compact than YAML and 40% more compact than gzipped YAML.
clangd has a new efficient symbol index suitable for complex and fuzzy queries \
and large code bases (e.g., LLVM, Chromium). This index is used for code \
completion, go to definition, and cross-references. The architecture of the \
index allows for complex and fuzzy retrieval criteria and sophisticated scoring.
clangd has a new LSP extension that communicates information about activity on \
clangd’s per-file worker thread. This information can be displayed to users to \
let them know that the language server is busy with something. For example, in \
clangd, building the AST blocks many other operations.
clangd has a new LSP extension that allows the client to supply the compilation \
commands over LSP, instead of finding compile_commands.json on disk.
clangd has a new LSP extension that allows the client to request fixes to be \
sent together with diagnostics, instead of asynchronously.
clangd has a new LSP extension that allows the client to resolve a symbol in a \
light-weight manner, without retrieving further information (like definition \
location, which may require consulting an index).
Improvements to clang-query
A new command line parameter --preload was added to run commands from a file and \
then start the interactive interpreter.
The command q can was added as an alias for quit to exit the clang-query interpreter.
It is now possible to bind to named values (the result of let expressions).
It is now possible to write comments in clang-query code. This is primarily \
useful when using script-mode. Comments are all content following the # \
character on a line.
The new set print-matcher true command now causes clang-query to print the \
evaluated matcher together with the resulting bindings.
A new output mode detailed-ast was added to clang-query. The existing dump \
output mode is now a deprecated alias for detailed-ast
Output modes can now be enabled or disabled non-exclusively.
Improvements to clang-tidy
New abseil-duration-comparison check.
Checks for comparisons which should be done in the absl::Duration domain instead \
of the float of integer domains.
New abseil-duration-division check.
Checks for uses of absl::Duration division that is done in a floating-point \
context, and recommends the use of a function that returns a floating-point \
value.
New abseil-duration-factory-float check.
Checks for cases where the floating-point overloads of various absl::Duration \
factory functions are called when the more-efficient integer versions could be \
used instead.
New abseil-duration-factory-scale check.
Checks for cases where arguments to absl::Duration factory functions are scaled \
internally and could be changed to a different factory function.
New abseil-duration-subtraction check.
Checks for cases where subtraction should be performed in the absl::Duration domain.
New abseil-faster-strsplit-delimiter check.
Finds instances of absl::StrSplit() or absl::MaxSplits() where the delimiter is \
a single character string literal and replaces with a character.
New abseil-no-internal-dependencies check.
Gives a warning if code using Abseil depends on internal details.
New abseil-no-namespace check.
Ensures code does not open namespace absl as that violates Abseil’s \
compatibility guidelines.
New abseil-redundant-strcat-calls check.
Suggests removal of unnecessary calls to absl::StrCat when the result is being \
passed to another absl::StrCat or absl::StrAppend.
New abseil-str-cat-append check.
Flags uses of absl::StrCat() to append to a std::string. Suggests \
absl::StrAppend() should be used instead.
New abseil-upgrade-duration-conversions check.
Finds calls to absl::Duration arithmetic operators and factories whose argument \
needs an explicit cast to continue compiling after upcoming API changes.
New bugprone-too-small-loop-variable check.
Detects those for loops that have a loop variable with a “too small” type \
which means this type can’t represent all values which are part of the \
iteration range.
New cppcoreguidelines-macro-usage check.
Finds macro usage that is considered problematic because better language \
constructs exist for the task.
New google-objc-function-naming check.
Checks that function names in function declarations comply with the naming \
conventions described in the Google Objective-C Style Guide.
New misc-non-private-member-variables-in-classes check.
Finds classes that not only contain the data (non-static member variables), but \
also have logic (non-static member functions), and diagnoses all member \
variables that have any other scope other than private.
New modernize-avoid-c-arrays check.
Finds C-style array types and recommend to use std::array<> / \
std::vector<>.
New modernize-concat-nested-namespaces check.
Checks for uses of nested namespaces in the form of namespace a { namespace b { \
... }} and offers change to syntax introduced in C++17 standard: namespace a::b \
{ ... }.
New modernize-deprecated-ios-base-aliases check.
Detects usage of the deprecated member types of std::ios_base and replaces those \
that have a non-deprecated equivalent.
New modernize-use-nodiscard check.
Adds [[nodiscard]] attributes (introduced in C++17) to member functions to \
highlight at compile time which return values should not be ignored.
New readability-const-return-type check.
Checks for functions with a const-qualified return type and recommends removal \
of the const keyword.
New readability-isolate-decl check.
Detects local variable declarations declaring more than one variable and tries \
to refactor the code to one statement per declaration.
New readability-magic-numbers check.
Detects usage of magic numbers, numbers that are used as literals instead of \
introduced via constants or symbols.
New readability-redundant-preprocessor check.
Finds potentially redundant preprocessor directives.
New readability-uppercase-literal-suffix check.
Detects when the integral literal or floating point literal has non-uppercase \
suffix, and suggests to make the suffix uppercase. The list of destination \
suffixes can be optionally provided.
New alias cert-dcl16-c to readability-uppercase-literal-suffix added.
New alias cppcoreguidelines-avoid-c-arrays to modernize-avoid-c-arrays added.
New alias cppcoreguidelines-non-private-member-variables-in-classes to \
misc-non-private-member-variables-in-classes added.
New alias hicpp-avoid-c-arrays to modernize-avoid-c-arrays added.
New alias hicpp-uppercase-literal-suffix to readability-uppercase-literal-suffix \
added.
The cppcoreguidelines-narrowing-conversions check now detects more narrowing \
conversions: - integer to narrower signed integer (this is compiler \
implementation defined), - integer - floating point narrowing conversions, - \
floating point - integer narrowing conversions, - constants with narrowing \
conversions (even in ternary operator).
The objc-property-declaration check now ignores the Acronyms and \
IncludeDefaultAcronyms options.
The readability-redundant-smartptr-get check does not warn about calls inside \
macros anymore by default.
The readability-uppercase-literal-suffix check does not warn about literal \
suffixes inside macros anymore by default.
|
2019-04-25 09:33:32 by Maya Rashish | Files touched by this commit (620) |
Log message:
PKGREVISION bump for anything using python without a PYPKGPREFIX.
This is a semi-manual PKGREVISION bump.
|