1
Fork 0

New tasks run, but their arguments get lost and something ends up in an infinite loop when the task exits.

This commit is contained in:
Eric Holk 2011-05-20 18:27:23 -07:00
parent e3b3a71e6a
commit 21efd07bc1

View file

@ -5932,8 +5932,12 @@ fn trans_spawn(&@block_ctxt cx,
auto llfnptr = bcx.build.GEP(fnptr.val, auto llfnptr = bcx.build.GEP(fnptr.val,
[C_int(0), C_int(0)]); [C_int(0), C_int(0)]);
log_err "Casting llfnptr"; log_err "Casting llfnptr";
auto llfnptr_i = bcx.build.PointerCast(llfnptr, auto llfnptrptr_i = bcx.build.PointerCast(llfnptr,
T_int()); T_ptr(T_int()));
// We'd better dereference this one more time, since that one points into
// the symbol table or something.
auto llfnptr_i = bcx.build.Load(llfnptrptr_i);
log_err "Cassting llargs"; log_err "Cassting llargs";
auto llargs_i = bcx.build.PointerCast(llargs.val, auto llargs_i = bcx.build.PointerCast(llargs.val,
T_int()); T_int());