NoQ added a comment.

In https://reviews.llvm.org/D39803#919945, @george.karpenkov wrote:

> I think I lack context to completely get what is going on here: I assume we 
> don't model the assignment here?




- We model `IntegralLiteral` as `nonloc::ConcreteInt` `12 S32b`.
- We model `InitListExpr` as `nonloc::CompoundVal` `{ 12 S32b }`.
- We model `MaterializeTemporaryExpr` as `loc::MemRegionVal` 
`&temp_object{const int [1], {12}}` in which `{12 S32b}` is stored, 
retroactively creating the location in which the list was supposed to be 
present from the start (TODO: why not `CompoundLiteralRegion`?).
- We //do not// model `CXXStdInitializerListExpr` or internals of 
`std::initializer_list`, hence the value of this expresssion, conservatively, 
is `conj_$0{std::initializer_list<int>}`. See also 
https://reviews.llvm.org/D35216.
- We //now// model `CompoundLiteralExpr` as 
`conj_$0{std::initializer_list<int>}` as no-op.


https://reviews.llvm.org/D39803



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

Reply via email to