[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. tbaeder marked an inline comment as done. Closed by commit rG09bbc903a5b4: [clang][Interp] Array initialization via ImplicitValueInitExpr (authored by tbaeder). Changed prior to commit:

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-21 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder marked an inline comment as done. tbaeder added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:726 + } else if (const auto *IVIE = dyn_cast(Initializer)) { +const ArrayType *ArrayType = IVIE->getType()->getAsArrayTypeUnsafe(); +

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman accepted this revision. aaron.ballman added a comment. This revision is now accepted and ready to land. Aside from a naming quirk, LGTM Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:726 + } else if (const auto *IVIE = dyn_cast(Initializer)) { +const

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469243. tbaeder marked 3 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/arrays.cpp Index:

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:726 + } else if (const auto *IVIE = dyn_cast(Initializer)) { +auto ArrayType = IVIE->getType()->getAsArrayTypeUnsafe(); +assert(ArrayType); Please spell out the

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 469230. tbaeder added a comment. Thinking about it some more, doesn't make much sense to add all that right now when we don't have a reproducer to test it anyway. I think the patch as it is makes sense and it it's not enough in the future, there's a proper

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. In D135013#3871250 , @tbaeder wrote: > In D135013#3871209 , @aaron.ballman > wrote: > >> In D135013#3870894 , @tbaeder >> wrote: >> >>>

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D135013#3871209 , @aaron.ballman wrote: > In D135013#3870894 , @tbaeder wrote: > >> @aaron.ballman Do you maybe have a different reproducer or know more about >> the expected

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. In D135013#3870894 , @tbaeder wrote: > @aaron.ballman Do you maybe have a different reproducer or know more about > the expected behavior of a `ImplicitValueInitExpr` for array and record types? So here's another

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-20 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. @aaron.ballman Do you maybe have a different reproducer or know more about the expected behavior of a `ImplicitValueInitExpr` for array and record types? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ah it's the array filler which we don't handle at all right now :( CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-15 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. In D135013#3860317 , @shafik wrote: > I found a way to get `ImplictValueInitExpr` for a record: > https://godbolt.org/z/Eqf9Gz1G4 > > I am not sure if we can achieve the same in C++ b/c value init of a class > break down to

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-14 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added a comment. I found a way to get `ImplictValueInitExpr` for a record: https://godbolt.org/z/Eqf9Gz1G4 I am not sure if we can achieve the same in C++ b/c value init of a class break down to default init or zero init. CHANGES SINCE LAST ACTION

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-14 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Thanks for the reproducer! Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:748 + } else { +assert(false && "default initializer for non-primitive type"); + } shafik wrote: > I guess this covers both arrays and

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-14 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 467691. tbaeder marked 2 inline comments as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 Files: clang/lib/AST/Interp/ByteCodeExprGen.cpp clang/test/AST/Interp/arrays.cpp Index:

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-13 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added inline comments. Comment at: clang/lib/AST/Interp/ByteCodeExprGen.cpp:737 +auto ArrayType = IVIE->getType()->getAsArrayTypeUnsafe(); +const auto *CAT = dyn_cast(ArrayType); +const size_t NumElems = CAT->getSize().getZExtValue(); I

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-13 Thread Shafik Yaghmour via Phabricator via cfe-commits
shafik added a comment. The following also generates an `ImplicitValueInitExpr`: template struct B { T a[N]; }; int main() { constexpr B arr = {}; constexpr int x = arr.a[0]; } Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-12 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135013/new/ https://reviews.llvm.org/D135013 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D135013: [clang][Interp] Array initialization via ImplicitValueInitExpr

2022-10-01 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, tahonermann, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Unfortunately, I have //no idea// how to test