[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-23 Thread Timm Bäder via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG3671a69470f3: [clang][Interp] Call destructors of local variables (authored by tbaeder). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST A

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-23 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. LGTM! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing lis

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-19 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/Descriptor.h:207 /// Initializes the map with no fields set. InitMap(unsigned N); aaron.ballman wrote: > Now that this is public, can we make it `exp

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 557801. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 Files: clang/lib/AST/Interp/Descriptor.cpp clang/lib/AST/Interp/Descriptor.h clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Interp/EvalEmit

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-19 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/lib/AST/Interp/Descriptor.cpp:328-330 +InitMap::T *InitMap::data() { return Data.get(); } +const InitMap::T *InitMap::data() const { return Data.get(); } Inline these into the header now? Even though these

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Descriptor.h:203 +public: /// Initializes the map with no fields set. aaron.ballman wrote: > This interface is now more confusing as to how to use because it now has a > public non-default cons

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-19 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 557773. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 Files: clang/lib/AST/Interp/Descriptor.cpp clang/lib/AST/Interp/Descriptor.h clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Interp/EvalEmit

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-11 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added inline comments. Comment at: clang/lib/AST/Interp/Descriptor.cpp:42 const Descriptor *D) { + new (Ptr) InitMapPtr(std::nullopt); + tbaeder wrote: > aaron.ballman wrote: > > This worries me a little bit for a few reaso

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added inline comments. Comment at: clang/lib/AST/Interp/Descriptor.cpp:42 const Descriptor *D) { + new (Ptr) InitMapPtr(std::nullopt); + aaron.ballman wrote: > This worries me a little bit for a few reasons, but it might be okay:

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 557670. tbaeder marked an inline comment as done. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 Files: clang/lib/AST/Interp/Descriptor.cpp clang/lib/AST/Interp/Descriptor.h clang/lib/AST/Interp/EvalE

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-09 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added subscribers: hubert.reinterpretcast, rsmith. aaron.ballman added inline comments. Comment at: clang/lib/AST/Interp/Descriptor.cpp:42 const Descriptor *D) { + new (Ptr) InitMapPtr(std::nullopt); + This worries me a lit

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-10-09 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-09-25 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-09-18 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-09-11 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-09-05 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-08-17 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 551162. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154581/new/ https://reviews.llvm.org/D154581 Files: clang/lib/AST/Interp/Descriptor.cpp clang/lib/AST/Interp/Descriptor.h clang/lib/AST/Interp/EvalEmitter.cpp clang/lib/AST/Interp/EvalEmit

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-08-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. Ping Comment at: clang/test/AST/Interp/literals.cpp:1047 - // expected-warning {{variable length array folded to constant array}} -} Ignore this block, that's just from rebasing. CHANGES SINCE LAST ACT

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-08-03 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder updated this revision to Diff 546872. tbaeder added a comment. 1. Use a `shared_ptr` for the initmaps. 2. However, we allocate them into the `Block`, therefore can't forget to call the Block's dtor. 3. To distinguish between Blocks we've already deallocated (via a `destroy` op), add an

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-08-01 Thread Aaron Ballman via Phabricator via cfe-commits
aaron.ballman added a comment. In D154581#4484363 , @tbaeder wrote: > One problem this does not fix (but rather introduce) is that the > `InterpState` will also free initmaps of global variables which haven't been > fully initialized. When the initializ

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-08-01 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/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-07-25 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/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-07-17 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/D154581/new/ https://reviews.llvm.org/D154581 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-07-10 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder added a comment. One problem this does not fix (but rather introduce) is that the `InterpState` will also free initmaps of global variables which haven't been fully initialized. When the initialization fails midway throught, the `InterpState` will free the `InitMap`, leaving the global

[PATCH] D154581: [clang][Interp] Track existing InitMaps in InterpState

2023-07-06 Thread Timm Bäder via Phabricator via cfe-commits
tbaeder created this revision. tbaeder added reviewers: aaron.ballman, erichkeane, cor3ntin, shafik. Herald added a project: All. tbaeder requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. InitMaps are created for primitive arrays when the fir