-
Notifications
You must be signed in to change notification settings - Fork 3
Infinite call to gen_destructor #105
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
I have lost the test case now but gen_destructor_call() in
depc/dep0/lib/05_llvmgen/src/gen_body.cpp
Lines 266 to 287 in 5b5a83f
| static void gen_destructor_call( | |
| global_ctx_t& global, | |
| local_ctx_t& local, | |
| llvm::IRBuilder<>& builder, | |
| llvm::Value* const value, | |
| typecheck::expr_t const& type) | |
| { | |
| auto destructor = global.get_destructor(type); | |
| if (not destructor) | |
| { | |
| destructor = gen_destructor(global, type); | |
| global.store_destructor(type, *destructor); | |
| } | |
| if (auto const properties = get_properties_if_array(type)) | |
| { | |
| auto const size = gen_array_total_size(global, local, builder, *properties); | |
| auto const call = builder.CreateCall(destructor->type, destructor->func, {value, size}); | |
| call->addParamAttr(1, llvm::Attribute::ZExt); | |
| } | |
| else | |
| builder.CreateCall(destructor->type, destructor->func, {value}); | |
| } |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working