Skip to content

Commit fa2933e

Browse files
committed
---
yaml --- r: 273261 b: refs/heads/beta c: f9c06ab h: refs/heads/master i: 273259: 7205910
1 parent b3b3202 commit fa2933e

File tree

2 files changed

+6
-38
lines changed

2 files changed

+6
-38
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: bffb0decc870ee76783c5da956acc980e73939bf
26+
refs/heads/beta: f9c06abc211f76004f3f558753d5d992ab32d223
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: e06d2ad9fcd5027bcaac5b08fc9aa39a49d0ecd3
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/src/librustc_trans/trans/intrinsic.rs

Lines changed: 5 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -350,43 +350,6 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>,
350350
}
351351
}
352352

353-
// For `try` we need some custom control flow
354-
if &name[..] == "try" {
355-
if let callee::ArgExprs(ref exprs) = args {
356-
let (func, data, local_ptr) = if exprs.len() != 3 {
357-
ccx.sess().bug("expected three exprs as arguments for \
358-
`try` intrinsic");
359-
} else {
360-
(&exprs[0], &exprs[1], &exprs[2])
361-
};
362-
363-
// translate arguments
364-
let func = unpack_datum!(bcx, expr::trans(bcx, func));
365-
let func = unpack_datum!(bcx, func.to_rvalue_datum(bcx, "func"));
366-
let data = unpack_datum!(bcx, expr::trans(bcx, data));
367-
let data = unpack_datum!(bcx, data.to_rvalue_datum(bcx, "data"));
368-
let local_ptr = unpack_datum!(bcx, expr::trans(bcx, local_ptr));
369-
let local_ptr = local_ptr.to_rvalue_datum(bcx, "local_ptr");
370-
let local_ptr = unpack_datum!(bcx, local_ptr);
371-
372-
let dest = match dest {
373-
expr::SaveIn(d) => d,
374-
expr::Ignore => alloc_ty(bcx, tcx.mk_mut_ptr(tcx.types.i8),
375-
"try_result"),
376-
};
377-
378-
// do the invoke
379-
bcx = try_intrinsic(bcx, func.val, data.val, local_ptr.val, dest,
380-
call_debug_location);
381-
382-
fcx.pop_and_trans_custom_cleanup_scope(bcx, cleanup_scope);
383-
return Result::new(bcx, dest);
384-
} else {
385-
ccx.sess().bug("expected two exprs as arguments for \
386-
`try` intrinsic");
387-
}
388-
}
389-
390353
// save the actual AST arguments for later (some places need to do
391354
// const-evaluation on them)
392355
let expr_arguments = match args {
@@ -446,6 +409,11 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>,
446409
(Some(llfn), _) => {
447410
Call(bcx, llfn, &llargs, call_debug_location)
448411
}
412+
(_, "try") => {
413+
bcx = try_intrinsic(bcx, llargs[0], llargs[1], llargs[2], llresult,
414+
call_debug_location);
415+
C_nil(ccx)
416+
}
449417
(_, "breakpoint") => {
450418
let llfn = ccx.get_intrinsic(&("llvm.debugtrap"));
451419
Call(bcx, llfn, &[], call_debug_location)

0 commit comments

Comments
 (0)