Fix log upcall translation bug. Un-XFAIL rec-auto.rs.
This commit is contained in:
parent
6ccfba34f3
commit
2b36a8eab4
@ -544,6 +544,7 @@ TEST_XFAILS_SELF := $(filter-out \
|
||||
multiline-comment.rs \
|
||||
readalias.rs \
|
||||
rec.rs \
|
||||
rec-auto.rs \
|
||||
rec-tup.rs \
|
||||
return-nil.rs \
|
||||
tup.rs \
|
||||
|
@ -1547,31 +1547,23 @@ fn load_non_structural(@block_ctxt cx,
|
||||
}
|
||||
|
||||
impure fn trans_log(@block_ctxt cx, @ast.expr e) -> result {
|
||||
alt (e.node) {
|
||||
case (ast.expr_lit(?lit, _)) {
|
||||
alt (lit.node) {
|
||||
case (ast.lit_str(_)) {
|
||||
auto sub = trans_expr(cx, e);
|
||||
auto v = sub.bcx.build.PtrToInt(sub.val, T_int());
|
||||
ret trans_upcall(sub.bcx,
|
||||
"upcall_log_str",
|
||||
vec(v));
|
||||
}
|
||||
|
||||
case (_) {
|
||||
auto sub = trans_expr(cx, e);
|
||||
ret trans_upcall(sub.bcx,
|
||||
"upcall_log_int",
|
||||
vec(sub.val));
|
||||
}
|
||||
}
|
||||
auto sub = trans_expr(cx, e);
|
||||
auto e_ty = typeck.expr_ty(e);
|
||||
alt (e_ty.struct) {
|
||||
case (typeck.ty_str) {
|
||||
auto v = sub.bcx.build.PtrToInt(sub.val, T_int());
|
||||
ret trans_upcall(sub.bcx,
|
||||
"upcall_log_str",
|
||||
vec(v));
|
||||
}
|
||||
|
||||
case (_) {
|
||||
auto sub = trans_expr(cx, e);
|
||||
ret trans_upcall(sub.bcx, "upcall_log_int", vec(sub.val));
|
||||
ret trans_upcall(sub.bcx,
|
||||
"upcall_log_int",
|
||||
vec(sub.val));
|
||||
}
|
||||
}
|
||||
fail;
|
||||
}
|
||||
|
||||
impure fn trans_check_expr(@block_ctxt cx, @ast.expr e) -> result {
|
||||
|
Loading…
x
Reference in New Issue
Block a user