=?utf-8?q?Donát?= Nagy <[email protected]>,
=?utf-8?q?Donát?= Nagy <[email protected]>,
=?utf-8?q?Donát?= Nagy <[email protected]>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/[email protected]>


haoNoQ wrote:

Actually maybe just keep the strict bare minimum of information in the call 
event? Like a `SmallVector<SVal, ...>` of args, a potential return value as 
`Optional<SVal>`, the runtime definition that's been already computed elsewhere 
as a `Decl *`, and more subclass-specific stuff in the subclasses.

If you don't want the data to go out of sync, just normalize your database. Our 
codebase has plenty of room for magical one-of-a-kind solutions but this one is 
arguably mundane.

The `CallEvent` object will be a tiny bit slower to build but we also won't be 
cloning and rebuilding it nearly as often. It can also be made mutable, so eg. 
when the return value is computed we simply call a setter to put it there, no 
need to rebuild everything else.

https://github.com/llvm/llvm-project/pull/160707
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to