[PATCH] D122273: [clang][dataflow] Fix handling of base-class fields

Yitzhak Mandelbaum via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 1 06:49:21 PDT 2022


ymandel added inline comments.


================
Comment at: clang/include/clang/Analysis/FlowSensitive/StorageLocation.h:59-60
 /// can be traced independently by abstract interpretation. For example: a
-/// struct with public members.
+/// struct with public members. Note that the corresponding `StructValue` has a
+/// flat layout that does not contain the child locations stored here.
 class AggregateStorageLocation final : public StorageLocation {
----------------
sgatev wrote:
> I find this a bit confusing. `StructValue` does not contain storage locations in general. I think we should make it clear that the layout of `AggregateStorageLocation` is flat, i.e. if it's used for a `struct` or `class` type it will contain child storage locations for all accessible members of base `struct` and `class` types.
Updated. I misunderstood what you meant as "flat" in the previous round of comments. Thanks for clarifying!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122273/new/

https://reviews.llvm.org/D122273



More information about the cfe-commits mailing list