[PATCH] D126973: [clang][dataflow] Relax assumption that `AggregateStorageLocations` correspond to struct type.
Yitzhak Mandelbaum via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 7 05:49:31 PDT 2022
ymandel added a comment.
In D126973#3558304 <https://reviews.llvm.org/D126973#3558304>, @gribozavr2 wrote:
>> using the StructValue for its properties, while modeling a non-struct type.
>
> Could you explain the use case in more details?
A `StructValue` is used to model a complex underlying type for access to its properties, but the corresponding `AggregateStorageLocation` is not initialized with a record type -- specifically, the real and complex type -- because that type is irrelevant to the model.
> Maybe a better change is to move synthetic properties to the base class `Value`?
In part, indeed that's what Gabor suggested above. Please see my response earlier and let me know what you think.
In D126973#3556466 <https://reviews.llvm.org/D126973#3556466>, @xazax.hun wrote:
> In D126973#3556383 <https://reviews.llvm.org/D126973#3556383>, @ymandel wrote:
>
>> I'm generally hesitant about assertions that don't enforce necessary properties (only "nice").
>
> I think not enforcing this in the current model is OK. I am more concerned about the future if we plan to run multiple checks/modeling in the same fixed point iteration. One check might make the assumption that the types are matching up while the other can end up producing values where this is not the case.
Good point -- but I think this gets at a larger issue of how to handle multiple models touching the same type. Even if the types align, for example, the properties might not. So, we need an overall story.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126973/new/
https://reviews.llvm.org/D126973
More information about the cfe-commits
mailing list