ymandel added a comment.

In D126972#3556230 <https://reviews.llvm.org/D126972#3556230>, @xazax.hun wrote:

> This patch looks good to me. On the other hand, I was wondering whether 
> functions like this would be handled:
>
>   pair<optional, optional> f();
>   array<optional, 4> g();
>   MyStructWithOptionals h();
>
> And so on. In general, I wonder if it is a better approach to be able to plug 
> the optional creation function into the general value creation function of 
> the engine. So whenever the engine encounters an optional type, it could 
> create the corresponding value. It could do it lazily or eagerly, however it 
> choses. And the user would no longer need to match all the possible ways an 
> optional type can be mentioned somewhere.

Thanks! Good points. Those results won't be handled directly, but they will be 
handled eventually, when accessed (via the various mechanisms that you've 
highlighted).  I think you're right that something needs to change -- we 
shouldn't be trying to catch these cases, and perform the corresponding 
initialization, at each point. Personally, I prefer a lazy approach (and have a 
short proposal I hope to share soon), but eager or lazy there should be some 
single code that plugs in and handles the types of interest to a model, rather 
than the model explicitly "trapping" every point the author can remember to 
insert initialization.



================
Comment at: 
clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp:2217
 
+// Verifies that the check sees through aliases.
+TEST_P(UncheckedOptionalAccessTest, WithAlias) {
----------------
sgatev wrote:
> Let's replace "check"/"checker" with "model" here and in the commit message.
Thanks, good point!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126972

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to