Closed michael-kenzel closed 2 years ago
…when called from exported function if there is a variable in scope that is initialized to a different lambda depending on function parameter.
repro:
#[import(cc = "thorin")] fn nvvm(_dev: i32, _grid: (i32, i32, i32), _block: (i32, i32, i32), _body: fn() -> ()) -> (); #[export] fn test(b: bool) -> () { let fun = if b { @||{} } else { @||{} }; nvvm(0, (1, 1, 1), (1, 1, 1), @||{}); }
results in
src/thorin/be/codegen.cpp:39: thorin::get_kernel_configs(thorin::Importer&, const std::vector<thorin::Continuation*>&, thorin::Cont2Config&, std::function<std::unique_ptr<thorin::KernelConfig>(thorin::Continuation*, thorin::Continuation*)>)::<lambda(thorin::Continuation*)>: Assertion `p.second && "single kernel config entry expected"' failed.
when compiled with --emit-llvm
--emit-llvm
just realized that this is actually a thorin problem so I opened an issue there…
…when called from exported function if there is a variable in scope that is initialized to a different lambda depending on function parameter.
repro:
results in
when compiled with
--emit-llvm