|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6 |
|
| #
ca4af13e |
| 21-Jun-2022 |
Kazu Hirata <[email protected]> |
[clang] Don't use Optional::getValue (NFC)
|
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3 |
|
| #
e5c7c171 |
| 23-Jun-2021 |
Martin Storsjö <[email protected]> |
[clang] Rename StringRef _lower() method calls to _insensitive()
This is mostly a mechanical change, but a testcase that contains parts of the StringRef class (clang/test/Analysis/llvm-conventions.c
[clang] Rename StringRef _lower() method calls to _insensitive()
This is mostly a mechanical change, but a testcase that contains parts of the StringRef class (clang/test/Analysis/llvm-conventions.cpp) isn't touched.
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4 |
|
| #
77f1e096 |
| 30-Mar-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcompletion-handler] Don't recognize init methods as conventional
rdar://75704162
Differential Revision: https://reviews.llvm.org/D99601
|
| #
2901dc75 |
| 06-Apr-2021 |
Simon Pilgrim <[email protected]> |
Don't directly dereference getAs<> casts to avoid potential null dereferences. NFCI.
Replace with castAs<> which asserts the cast is valid.
Fixes a number of static analyzer warnings.
|
| #
8b8b9af8 |
| 18-Mar-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcalled-once-parameter][NFC] Fix GCC compilation error
|
| #
4a7afc9a |
| 11-Mar-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcalled-once-parameter] Fix false positives for cleanup attr
Cleanup attribute allows users to attach a destructor-like functions to variable declarations to be called whenever they leave the scop
[-Wcalled-once-parameter] Fix false positives for cleanup attr
Cleanup attribute allows users to attach a destructor-like functions to variable declarations to be called whenever they leave the scope. The logic of such functions is not supported by the Clang's CFG and is too hard to be reasoned about. In order to avoid false positives in this situation, we assume that we didn't see ALL of the executtion paths of the function and, thus, can warn only about multiple call violation.
rdar://74441906
Differential Revision: https://reviews.llvm.org/D98694
show more ...
|
| #
f1a7d5a7 |
| 15-Mar-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcalled-once-parameter] Harden analysis in terms of block use
This patch introduces a very simple inter-procedural analysis between blocks and enclosing functions.
We always analyze blocks first
[-Wcalled-once-parameter] Harden analysis in terms of block use
This patch introduces a very simple inter-procedural analysis between blocks and enclosing functions.
We always analyze blocks first (analysis is done as part of semantic analysis that goes side-by-side with the parsing process), and at the moment of reporting we don't know how that block will be actually used.
This patch introduces new logic delaying reports of the "never called" warnings on blocks. If we are not sure that the block will be called exactly once, we shouldn't warn our users about that. Double calls, however, don't require such delays. While analyzing the enclosing function, we can actually decide what we should do with those warnings.
Additionally, as a side effect, we can be more confident about blocks in such context and can treat them not as escapes, but as direct calls.
rdar://74090107
Differential Revision: https://reviews.llvm.org/D98688
show more ...
|
| #
c86dacd1 |
| 15-Mar-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcalled-once-parameter] Let escapes overwrite MaybeCalled states
This commit makes escapes symmetrical, meaning that having escape before and after the branching, where parameter is not called on
[-Wcalled-once-parameter] Let escapes overwrite MaybeCalled states
This commit makes escapes symmetrical, meaning that having escape before and after the branching, where parameter is not called on one of the paths, will have the same effect.
Differential Revision: https://reviews.llvm.org/D98622
show more ...
|
| #
59112eac |
| 09-Mar-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcompletion-handler] Extend list of detected conventions
Update convention detection to accomodate changes from: https://github.com/DougGregor/swift-evolution/blob/concurrency-objc/proposals/NNNN-
[-Wcompletion-handler] Extend list of detected conventions
Update convention detection to accomodate changes from: https://github.com/DougGregor/swift-evolution/blob/concurrency-objc/proposals/NNNN-concurrency-objc.md#asynchronous-completion-handler-methods
Differential Revision: https://reviews.llvm.org/D98251
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
| #
d1522d34 |
| 08-Feb-2021 |
Valeriy Savchenko <[email protected]> |
[-Wcompletion-handler] Support checks with builtins
It is very common to check callbacks and completion handlers for null. This patch supports such checks using built-in functions: * __builtin_exp
[-Wcompletion-handler] Support checks with builtins
It is very common to check callbacks and completion handlers for null. This patch supports such checks using built-in functions: * __builtin_expect * __builtin_expect_with_probablity * __builtin_unpredictable
rdar://73455388
Differential Revision: https://reviews.llvm.org/D96268
show more ...
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init |
|
| #
c4355670 |
| 25-Jan-2021 |
Erik Pilkington <[email protected]> |
[Sema] Fix an assertion failure in -Wcompletion-handler
NamedDecl::getName() was being called on a constructor.
|
|
Revision tags: llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
| #
a032a4e7 |
| 06-Jan-2021 |
Yang Fan <[email protected]> |
[-Wcalled-once-parameter][NFC] Fix operator precedence warning
|
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1 |
|
| #
fec1a442 |
| 21-Oct-2020 |
Valeriy Savchenko <[email protected]> |
[-Wcalled-once-parameter] Introduce 'called_once' attribute
This commit introduces a new attribute `called_once`. It can be applied to function-like parameters to signify that this parameter should
[-Wcalled-once-parameter] Introduce 'called_once' attribute
This commit introduces a new attribute `called_once`. It can be applied to function-like parameters to signify that this parameter should be called exactly once. This concept is particularly widespread in asynchronous programs.
Additionally, this commit introduce a new group of dataflow analysis-based warnings to check this property. It identifies and reports the following situations: * parameter is called twice * parameter is never called * parameter is not called on one of the paths
Current implementation can also automatically infer `called_once` attribute for completion handler paramaters that should follow the same principle by convention. This behavior is OFF by default and can be turned on by using `-Wcompletion-handler`.
Differential Revision: https://reviews.llvm.org/D92039
rdar://72812043
show more ...
|