=?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>


================
@@ -363,6 +397,18 @@ class LazyCompoundVal : public NonLoc {
   /// It might return null.
   const void *getStore() const;
 
+  /// This function itself is immaterial. It is only an implementation detail.
+  /// LazyCompoundVal represents only the rvalue, the data (known or unknown)
+  /// that *was* stored in that region *at some point in the past*. The region
+  /// should not be used for any purpose other than figuring out what part of
+  /// the frozen Store you're interested in. The value does not represent the
+  /// *current* value of that region. Sometimes it may, but this should not be
+  /// relied upon. Instead, if you want to figure out what region it 
represents,
+  /// you typically need to see where you got it from in the first place. The
+  /// region is absolutely not analogous to the C++ "this" pointer. It is also
+  /// not a valid way to "materialize" the prvalue into a glvalue in C++,
+  /// because the region represents the *old* storage (sometimes very old), not
+  /// the *future* storage.
----------------
steakhal wrote:

To be fair, I don't really understand this.

To me, this region is the region that one would need to query from the 
associated `Store` to get the value this `LazyCompoundValue` actually boils 
down to.
So, a region, like every other region, only defines a memory location (an 
l-value), and there is not much one could do with such a region. But I find 
this true for any other `MemRegion` anywhere in the engine.

Probably I miss something, as I don't usually deal with LCVs, and it's been a 
while I last touched them.
So, to summarize, I don't really understand what `immaterial` means in this 
context or understand why we mention it for `LCV::getRegion()` instead of 
mention this for a `MemRegion`.

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