Skip to content

Commit ba9c1dc

Browse files
committed
Create dict iterators just before the user loop and destroy after user loop
1 parent c5880e7 commit ba9c1dc

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

src/libasr/codegen/asr_to_llvm.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3577,6 +3577,7 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor<ASRToLLVMVisitor>
35773577
}
35783578

35793579
void visit_WhileLoop(const ASR::WhileLoop_t &x) {
3580+
dict_api->set_iterators();
35803581
llvm::BasicBlock *loophead = llvm::BasicBlock::Create(context, "loop.head");
35813582
llvm::BasicBlock *loopbody = llvm::BasicBlock::Create(context, "loop.body");
35823583
llvm::BasicBlock *loopend = llvm::BasicBlock::Create(context, "loop.end");
@@ -3598,6 +3599,7 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor<ASRToLLVMVisitor>
35983599

35993600
// end
36003601
start_new_block(loopend);
3602+
dict_api->reset_iterators();
36013603
}
36023604

36033605
void visit_Exit(const ASR::Exit_t & /* x */) {

0 commit comments

Comments
 (0)