=?utf-8?q?Kristóf?= Umann <dkszelet...@gmail.com>,
=?utf-8?q?Kristóf?= Umann <dkszelet...@gmail.com>,
=?utf-8?q?Kristóf?= Umann <dkszelet...@gmail.com>,
=?utf-8?q?Kristóf?= Umann <dkszelet...@gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/97...@github.com>


================
@@ -346,6 +350,36 @@ class CompoundVal : public NonLoc {
   static bool classof(SVal V) { return V.getKind() == CompoundValKind; }
 };
 
+/// While nonloc::CompoundVal covers a few simple use cases,
+/// nonloc::LazyCompoundVal is a more performant and flexible way to represent
+/// an rvalue of record type, so it shows up much more frequently during
+/// analysis. This value is an r-value that represents a snapshot of any
+/// structure "as a whole" at a given moment during the analysis. Such value is
+/// already quite far from being referred to as "concrete", as many fields
+/// inside it would be unknown or symbolic. nonloc::LazyCompoundVal operates by
+/// storing two things:
+///   * a reference to the TypedValueRegion being snapshotted (yes, it is 
always
+///     typed), and also
+///  * a reference to the whole Store object, obtained from the ProgramState in
+///    which the nonloc::LazyCompoundVal was created.
----------------
steakhal wrote:

These bulletpoints are indented by different levels.

https://github.com/llvm/llvm-project/pull/97407
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to