You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This bug seems to only trigger on Windows (possibly only when built with MSVC).
The following example will reproduce the bug (compile with --emit-llvm, removing pretty much anything makes the bug disappear):
// any fewer functions will not trigger the bug// any change to the type of any function makes the bug disappear as well#[import(name = "A")]fnA(&mutu64,u64) -> u64;#[import(name = "B")]fnB(&muti32,i32) -> i32;#[import(name = "C")]fnC(&mutu32,u32) -> u32;#[import(name = "D")]fnD(&mutu64,u64) -> u64;structthing{A:fn() -> (),B:fn() -> (),C:fn() -> (),D:fn() -> (),}fn @wrap[T](f:fn(&mutT,T) -> T){
@|| -> (){}}fn @invoke(body:fn(thing) -> ()) -> (){
@body(thing{A = wrap[u64](A),B = wrap[i32](B),C = wrap[u32](C),D = wrap[u64](D),})}#[export]fnprint_info(_device:i32){invoke(|_|{});}#[export]fnrun(_device:i32,_argc:i32,_argv:&mutu8){invoke(|_|{});}
results in
assertion 'pt == at' failed in src\thorin\continuation.cpp:57: app node argument wrap_892(run_1534.run_1535, A_1555, cont_901) has type fn[mem, pu64*, pu64, fn[mem, pu64]] but the callee was expecting closure [mem, pu64*, pu64, fn[mem, pu64]]
The text was updated successfully, but these errors were encountered:
This bug seems to only trigger on Windows (possibly only when built with MSVC).
The following example will reproduce the bug (compile with
--emit-llvm
, removing pretty much anything makes the bug disappear):results in
The text was updated successfully, but these errors were encountered: