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