#
a157d839 |
| 09-Mar-2022 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[clang] Environment::createValueUnlessSelfReferential - use castAs<> instead of getAs<> to avoid dereference of nullptr
The pointer is always dereferenced, so assert the cast is correct instead of r
[clang] Environment::createValueUnlessSelfReferential - use castAs<> instead of getAs<> to avoid dereference of nullptr
The pointer is always dereferenced, so assert the cast is correct instead of returning nullptr
show more ...
|
#
18c84e2d |
| 07-Mar-2022 |
Yitzhak Mandelbaum <yitzhakm@google.com> |
[clang][dataflow] Fix nullptr dereferencing error.
When pre-initializing fields in the environment, the code assumed that all fields of a struct would be initialized. However, given limits on value
[clang][dataflow] Fix nullptr dereferencing error.
When pre-initializing fields in the environment, the code assumed that all fields of a struct would be initialized. However, given limits on value construction, that assumption is incorrect. This patch changes the code to drop that assumption and thereby avoid dereferencing a nullptr.
Differential Revision: https://reviews.llvm.org/D121158
show more ...
|
#
1e571585 |
| 04-Mar-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Extend flow conditions from block terminators
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-
[clang][dataflow] Extend flow conditions from block terminators
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D120984
show more ...
|
#
ae60884d |
| 01-Mar-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Add flow condition constraints to Environment
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-
[clang][dataflow] Add flow condition constraints to Environment
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D120711
show more ...
|
#
208c25fc |
| 24-Feb-2022 |
Yitzhak Mandelbaum <yitzhakm@google.com> |
[clang][dataflow] Add limits to size of modeled data structures in environment.
Adds two new parameters to control the size of data structures modeled in the environment: # of values and depth of da
[clang][dataflow] Add limits to size of modeled data structures in environment.
Adds two new parameters to control the size of data structures modeled in the environment: # of values and depth of data structure. The environment already prevents creation of recursive data structures, but that was insufficient in practice. Very large structs still ground the analysis to a halt. These new parameters allow tuning the size more effectively.
In this patch, the parameters are set as internal constants. We leave to a future patch to make these proper model parameters.
Differential Revision: https://reviews.llvm.org/D120510
show more ...
|
#
baa0f221 |
| 23-Feb-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Update StructValue child when assigning a value
When assigning a value to a storage location of a struct member we need to also update the value in the corresponding `StructValue`.
[clang][dataflow] Update StructValue child when assigning a value
When assigning a value to a storage location of a struct member we need to also update the value in the corresponding `StructValue`.
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D120414
show more ...
|
#
03dff121 |
| 23-Feb-2022 |
Stanislav Gatev <sgatev@google.com> |
Revert "Revert "[clang][dataflow] Add support for global storage values""
This reverts commit 169e1aba55bed9f7ffa000f9f170ab2defbc40b2.
It also fixes an incorrect assumption in `initGlobalVars`.
|
#
169e1aba |
| 23-Feb-2022 |
Stanislav Gatev <sgatev@google.com> |
Revert "[clang][dataflow] Add support for global storage values"
This reverts commit 7ea103de140b59a64fc884fa90afd2213619384d.
|
#
7ea103de |
| 18-Feb-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Add support for global storage values
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Re
[clang][dataflow] Add support for global storage values
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D120149
show more ...
|
#
6b8800df |
| 31-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Enable comparison of distinct values in Environment
Make specializations of `DataflowAnalysis` extendable with domain-specific logic for comparing distinct values when comparing en
[clang][dataflow] Enable comparison of distinct values in Environment
Make specializations of `DataflowAnalysis` extendable with domain-specific logic for comparing distinct values when comparing environments.
This includes a breaking change to the `runDataflowAnalysis` interface as the return type is now `llvm::Expected<...>`.
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D118596
show more ...
|
#
56cc6973 |
| 28-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Merge distinct pointer values in Environment::join
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on
[clang][dataflow] Merge distinct pointer values in Environment::join
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D118480
show more ...
|
#
d3597ec0 |
| 24-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Enable merging distinct values in Environment::join
Make specializations of `DataflowAnalysis` extendable with domain-specific logic for merging distinct values when joining enviro
[clang][dataflow] Enable merging distinct values in Environment::join
Make specializations of `DataflowAnalysis` extendable with domain-specific logic for merging distinct values when joining environments. This could be a strict lattice join or a more general widening operation.
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: xazax.hun
Differential Revision: https://reviews.llvm.org/D118038
show more ...
|
#
188d28f7 |
| 26-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Assign aggregate storage locations to union stmts
This patch ensures that the dataflow analysis framework does not crash when it encounters access to members of union types.
This
[clang][dataflow] Assign aggregate storage locations to union stmts
This patch ensures that the dataflow analysis framework does not crash when it encounters access to members of union types.
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: xazax.hun
Differential Revision: https://reviews.llvm.org/D118226
show more ...
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
#
c95cb4de |
| 20-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Intersect ExprToLoc when joining environments
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-
[clang][dataflow] Intersect ExprToLoc when joining environments
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: xazax.hun
Differential Revision: https://reviews.llvm.org/D117754
show more ...
|
#
782eced5 |
| 17-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Replace initValueInStorageLocation with createValue
Since Environment's setValue method already does part of the work that initValueInStorageLocation does, we can factor out a new
[clang][dataflow] Replace initValueInStorageLocation with createValue
Since Environment's setValue method already does part of the work that initValueInStorageLocation does, we can factor out a new createValue method to reduce the duplication.
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D117493
show more ...
|
#
7d941d6d |
| 13-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Add transfer functions for constructors
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
[clang][dataflow] Add transfer functions for constructors
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D117218
show more ...
|
Revision tags: llvmorg-13.0.1-rc2 |
|
#
99f7d55e |
| 11-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Add transfer functions for data members and this pointers
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang
[clang][dataflow] Add transfer functions for data members and this pointers
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: ymandel, xazax.hun
Differential Revision: https://reviews.llvm.org/D117012
show more ...
|
#
e7481f6e |
| 04-Jan-2022 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Add transfer functions for assignment
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Di
[clang][dataflow] Add transfer functions for assignment
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Differential Revision: https://reviews.llvm.org/D116596
show more ...
|
#
af7bc39b |
| 29-Dec-2021 |
Stanislav Gatev <sgatev@google.com> |
[clang][dataflow] Add transfer function for VarDecl statements
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-d
[clang][dataflow] Add transfer function for VarDecl statements
This is part of the implementation of the dataflow analysis framework. See "[RFC] A dataflow analysis framework for Clang AST" on cfe-dev.
Reviewed-by: xazax.hun
Differential Revision: https://reviews.llvm.org/D116368
show more ...
|