Skip to content

Commit 5653956

Browse files
committed
---
yaml --- r: 1749 b: refs/heads/master c: 770a495 h: refs/heads/master i: 1747: c1c8291 v: v3
1 parent 0466577 commit 5653956

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 26ec8831dc19080744161713553797f7edc1363a
2+
refs/heads/master: 770a49520c2e5b7e369d35174c702bf23e96acb8

trunk/src/comp/middle/trans.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,8 @@ fn get_upcall(&hashmap[str, ValueRef] upcalls,
856856

857857
fn trans_upcall(@block_ctxt cx, str name, vec[ValueRef] args) -> result {
858858
auto cxx = cx.fcx.ccx;
859-
auto t = trans_upcall2(cx.build, cxx.glues, cx.fcx.lltaskptr,
859+
auto lltaskptr = cx.build.PtrToInt(cx.fcx.lltaskptr, T_int());
860+
auto t = trans_upcall2(cx.build, cxx.glues, lltaskptr,
860861
cxx.upcalls, cxx.tn, cxx.llmod, name, args);
861862
ret res(cx, t);
862863
}
@@ -871,7 +872,7 @@ fn trans_upcall2(builder b, @glue_fns glues, ValueRef lltaskptr,
871872

872873
let ValueRef llglue = glues.upcall_glues.(n);
873874
let vec[ValueRef] call_args = vec(llupcall);
874-
call_args += vec( b.PtrToInt(lltaskptr, T_int()));
875+
call_args += vec( b.ZExtOrBitCast(lltaskptr, T_int()));
875876

876877
for (ValueRef a in args) {
877878
call_args += vec(b.ZExtOrBitCast(a, T_int()));
@@ -5692,8 +5693,9 @@ fn trans_exit_task_glue(@glue_fns glues,
56925693

56935694
auto entrybb = llvm.LLVMAppendBasicBlock(llfn, _str.buf("entry"));
56945695
auto build = new_builder(entrybb);
5696+
auto tptr = build.PtrToInt(lltaskptr, T_int());
56955697

5696-
trans_upcall2(build, glues, lltaskptr,
5698+
trans_upcall2(build, glues, tptr,
56975699
upcalls, tn, llmod, "upcall_exit", V_args);
56985700
build.RetVoid();
56995701
}

0 commit comments

Comments
 (0)