[clang] [clang][dataflow] Fully support Environment construction for Stmt analysis. (PR #91616)

via cfe-commits cfe-commits at lists.llvm.org
Wed May 15 01:07:32 PDT 2024


================
@@ -164,23 +169,28 @@ class Environment {
   Environment &operator=(Environment &&Other) = default;
 
   /// Creates an environment that uses `DACtx` to store objects that encompass
-  /// the state of a program.
-  ///
-  /// If `DeclCtx` is a function, initializes the environment with symbolic
-  /// representations of the function parameters.
-  ///
-  /// If `DeclCtx` is a non-static member function, initializes the environment
-  /// with a symbolic representation of the `this` pointee.
-  Environment(DataflowAnalysisContext &DACtx, const DeclContext &DeclCtx);
+  /// the state of a program, with `S` as the initial analysis target.
----------------
martinboehme wrote:

I don't think we've used the term "initial analysis target" elsewhere, so maybe this is worth clarifying?

OTOH, maybe it's clearer not to introduce this term at all (at least outside the implementation). This is the constructor, so it's pretty clear that `S` is what we will start analyzing, before we potentially analyze functions called by it. And even if/when we do do context-sensitive analysis of other functions, the ultimate purpose of that is to analyze `S` better. So I would suggest simply saying "...with `S` as the statement to analyze".

https://github.com/llvm/llvm-project/pull/91616


More information about the cfe-commits mailing list