|
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 |
|
| #
a618d5e0 |
| 29-Jun-2022 |
isuckatcs <[email protected]> |
[analyzer] Structured binding to tuple-like types
Introducing support for creating structured binding to tuple-like types.
Differential Revision: https://reviews.llvm.org/D128837
|
| #
996b092c |
| 17-Jul-2022 |
isuckatcs <[email protected]> |
[analyzer] Lambda capture non-POD type array
This patch introduces a new `ConstructionContext` for lambda capture. This `ConstructionContext` allows the analyzer to construct the captured object dir
[analyzer] Lambda capture non-POD type array
This patch introduces a new `ConstructionContext` for lambda capture. This `ConstructionContext` allows the analyzer to construct the captured object directly into it's final region, and makes it possible to capture non-POD arrays.
Differential Revision: https://reviews.llvm.org/D129967
show more ...
|
| #
8a13326d |
| 17-Jul-2022 |
isuckatcs <[email protected]> |
[analyzer] ArrayInitLoopExpr with array of non-POD type
This patch introduces the evaluation of ArrayInitLoopExpr in case of structured bindings and implicit copy/move constructor. The idea is to ca
[analyzer] ArrayInitLoopExpr with array of non-POD type
This patch introduces the evaluation of ArrayInitLoopExpr in case of structured bindings and implicit copy/move constructor. The idea is to call the copy constructor for every element in the array. The parameter of the copy constructor is also manually selected, as it is not a part of the CFG.
Differential Revision: https://reviews.llvm.org/D129496
show more ...
|
| #
cde1df4c |
| 30-Jun-2022 |
Prathit Aswar <[email protected]> |
Correct -Winfinite-recursion warning on potentially-unevaluated operand
Fixing issue "incorrect -Winfinite-recursion warning on potentially- unevaluated operand".
We add a dedicated visit function
Correct -Winfinite-recursion warning on potentially-unevaluated operand
Fixing issue "incorrect -Winfinite-recursion warning on potentially- unevaluated operand".
We add a dedicated visit function (VisitCXXTypeidExpr) for typeid, instead of using the default (VisitStmt). In this new function we skip over building the CFG for unevaluated operands of typeid.
Fixes #21668
Differential Revision: https://reviews.llvm.org/D128747
show more ...
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
fc6b2281 |
| 16-Jun-2022 |
isuckatcs <[email protected]> |
[Static Analyzer][CFG] Introducing the source array in the CFG of DecompositionDecl
For DecompositionDecl, the array, which is being decomposed was not present in the CFG, which lead to the liveness
[Static Analyzer][CFG] Introducing the source array in the CFG of DecompositionDecl
For DecompositionDecl, the array, which is being decomposed was not present in the CFG, which lead to the liveness analysis falsely detecting it as a dead symbol.
Differential Revision: https://reviews.llvm.org/D127993
show more ...
|
|
Revision tags: llvmorg-14.0.5 |
|
| #
65b34b78 |
| 06-Jun-2022 |
Nathan Sidwell <[email protected]> |
[clang][pr55896]:co_yield/co_await thread-safety
co_await and co_yield are represented by (classes derived from) CoroutineSuspendExpr. That has a number of child nodes, not all of which are used fo
[clang][pr55896]:co_yield/co_await thread-safety
co_await and co_yield are represented by (classes derived from) CoroutineSuspendExpr. That has a number of child nodes, not all of which are used for code-generation. In particular the operand is represented multiple times, and, like the problem with co_return (55406) it must only be emitted in the CFG exactly once. The operand also appears inside OpaqueValueExprs, but that's ok.
This adds a visitor for SuspendExprs to emit the required children in the correct order. Note that this CFG is pre-coro xform. We don't have initial or final suspend points.
Reviewed By: bruno
Differential Revision: https://reviews.llvm.org/D127236
show more ...
|
| #
6b8c6f15 |
| 25-May-2022 |
Nathan Sidwell <[email protected]> |
[clang][PR55406] CFG for coroutine
CoreturnStmt needs to keep the operand value distinct from its use in any return_value call, so that instantiation may rebuild the latter. But it also needs to kee
[clang][PR55406] CFG for coroutine
CoreturnStmt needs to keep the operand value distinct from its use in any return_value call, so that instantiation may rebuild the latter. But it also needs to keep the operand value separate in the case of calling return_void. Code generation checks the operand value form to determine whether it is a distincte entity to the promise call. This adds the same logic to CFG generation.
Reviewed By: bruno
Differential Revision: https://reviews.llvm.org/D126399
show more ...
|
|
Revision tags: llvmorg-14.0.4 |
|
| #
d9e6b5df |
| 09-May-2022 |
Krzysztof Parzyszek <[email protected]> |
[clang] Recognize scope of thread local variables in CFGBuilder
Differential Revision: https://reviews.llvm.org/D125177
|
| #
29dff0d4 |
| 02-May-2022 |
Balazs Benics <[email protected]> |
[analyzer] Allow CFG dumps in release builds
This is a similar commit to D124442, but for CFG dumps. The binary size diff remained the same demonstrated in that patch.
This time I'm adding tests fo
[analyzer] Allow CFG dumps in release builds
This is a similar commit to D124442, but for CFG dumps. The binary size diff remained the same demonstrated in that patch.
This time I'm adding tests for demonstrating that all the dump debug checkers work - even in regular builds without asserts.
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D124443
show more ...
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2 |
|
| #
cfb81690 |
| 20-Apr-2022 |
Nathan James <[email protected]> |
[clang] Add a raw_ostream operator<< overload for QualType
Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostrea
[clang] Add a raw_ostream operator<< overload for QualType
Under the hood this prints the same as `QualType::getAsString()` but cuts out the middle-man when that string is sent to another raw_ostream.
Also cleaned up all the call sites where this occurs.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D123926
show more ...
|
|
Revision tags: llvmorg-14.0.1 |
|
| #
5d2ce766 |
| 18-Mar-2022 |
Benjamin Kramer <[email protected]> |
Use llvm::append_range instead of push_back loops where applicable. NFCI.
|
|
Revision tags: 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 |
|
| #
3a604fdb |
| 07-Jan-2022 |
Nick Desaulniers <[email protected]> |
[Clang][CFG] check children statements of asm goto
When performing CFG based analyses, don't forget to check the child statements of an asm goto, such as the expressions used for inputs+outputs.
Fi
[Clang][CFG] check children statements of asm goto
When performing CFG based analyses, don't forget to check the child statements of an asm goto, such as the expressions used for inputs+outputs.
Fixes: https://github.com/llvm/llvm-project/issues/51024 Fixes: https://github.com/ClangBuiltLinux/linux/issues/1439
Reviewed By: void, jyknight, jyu2, efriedma
Differential Revision: https://reviews.llvm.org/D116059
show more ...
|
| #
d677a7cb |
| 02-Jan-2022 |
Kazu Hirata <[email protected]> |
[clang] Remove redundant member initialization (NFC)
Identified with readability-redundant-member-init.
|
| #
2d303e67 |
| 25-Dec-2021 |
Kazu Hirata <[email protected]> |
Remove redundant return and continue statements (NFC)
Identified with readability-redundant-control-flow.
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
eb1c7c13 |
| 07-Nov-2021 |
Kazu Hirata <[email protected]> |
[AST, Analysis] Use llvm::reverse (NFC)
|
| #
c7aaa2ef |
| 26-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Add range accessor for ObjCAtTryStmt catch_stmts and use it
No behavior change.
Differential Revision: https://reviews.llvm.org/D112543
|
| #
04f30795 |
| 21-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Implement CFG construction for @try and @catch
@finally is still not implemented.
With this, clang can emit -Wreturn-type warnings for functions containing @try/@catch (but not yet @finally
[clang] Implement CFG construction for @try and @catch
@finally is still not implemented.
With this, clang can emit -Wreturn-type warnings for functions containing @try/@catch (but not yet @finally), and -Wunreachable-code also works for those functions.
The implementation is similar to D36914.
Part of PR46693.
Differential Revision: https://reviews.llvm.org/D112287
show more ...
|
| #
0b7c9add |
| 26-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Make loop in CFGBuilder::VisitCXXTryStmt() more canonical
No behavior change.
|
| #
aa42785d |
| 26-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Simplify CFG block printing code a bit
No behavior change.
|
| #
d054b31d |
| 26-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Use consistent punctuation at end of Block NULL comment
No behavior change.
|
| #
4bd46501 |
| 25-Oct-2021 |
Kazu Hirata <[email protected]> |
Use llvm::any_of and llvm::none_of (NFC)
|
| #
c74ab84e |
| 11-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Omit most AttributedStatements from the CFG
`[[clang::fallthrough]]` has meaning for the CFG, but all other StmtAttrs we currently have don't. So omit them, as AttributedStatements with chil
[clang] Omit most AttributedStatements from the CFG
`[[clang::fallthrough]]` has meaning for the CFG, but all other StmtAttrs we currently have don't. So omit them, as AttributedStatements with children cause several issues and there's no benefit in including them.
Fixes PR52103 and PR49454. See PR52103 for details.
Differential Revision: https://reviews.llvm.org/D111568
show more ...
|
| #
5ab2a95e |
| 11-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Remove an else-after-return
|
| #
00ca004d |
| 11-Oct-2021 |
Nico Weber <[email protected]> |
[clang] Convert a few loops to for-each
|
| #
144f851f |
| 11-Oct-2021 |
Nico Weber <[email protected]> |
[clang/CFG] Rewrap a line to 80 columns
|