@@ -95,10 +95,10 @@ impl<'a, 'tcx> TerminatorCodegenHelper<'tcx> {
95
95
96
96
debug ! ( "llblock: creating cleanup trampoline for {:?}" , target) ;
97
97
let name = & format ! ( "{:?}_cleanup_trampoline_{:?}" , self . bb, target) ;
98
- let trampoline = Bx :: append_block ( fx. cx , fx. llfn , name) ;
99
- let mut trampoline_bx = Bx :: build ( fx. cx , trampoline ) ;
98
+ let trampoline_llbb = Bx :: append_block ( fx. cx , fx. llfn , name) ;
99
+ let mut trampoline_bx = Bx :: build ( fx. cx , trampoline_llbb ) ;
100
100
trampoline_bx. cleanup_ret ( self . funclet ( fx) . unwrap ( ) , Some ( lltarget) ) ;
101
- trampoline
101
+ trampoline_llbb
102
102
} else {
103
103
lltarget
104
104
}
@@ -1459,20 +1459,20 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
1459
1459
// bar();
1460
1460
// }
1461
1461
Some ( & mir:: TerminatorKind :: Abort ) => {
1462
- let cs_bb =
1462
+ let cs_llbb =
1463
1463
Bx :: append_block ( self . cx , self . llfn , & format ! ( "cs_funclet{:?}" , bb) ) ;
1464
- let cp_bb =
1464
+ let cp_llbb =
1465
1465
Bx :: append_block ( self . cx , self . llfn , & format ! ( "cp_funclet{:?}" , bb) ) ;
1466
- ret_llbb = cs_bb ;
1466
+ ret_llbb = cs_llbb ;
1467
1467
1468
- let mut cs_bx = Bx :: build ( self . cx , cs_bb ) ;
1469
- let cs = cs_bx. catch_switch ( None , None , & [ cp_bb ] ) ;
1468
+ let mut cs_bx = Bx :: build ( self . cx , cs_llbb ) ;
1469
+ let cs = cs_bx. catch_switch ( None , None , & [ cp_llbb ] ) ;
1470
1470
1471
1471
// The "null" here is actually a RTTI type descriptor for the
1472
1472
// C++ personality function, but `catch (...)` has no type so
1473
1473
// it's null. The 64 here is actually a bitfield which
1474
1474
// represents that this is a catch-all block.
1475
- let mut cp_bx = Bx :: build ( self . cx , cp_bb ) ;
1475
+ let mut cp_bx = Bx :: build ( self . cx , cp_llbb ) ;
1476
1476
let null = cp_bx. const_null (
1477
1477
cp_bx. type_i8p_ext ( cp_bx. cx ( ) . data_layout ( ) . instruction_address_space ) ,
1478
1478
) ;
@@ -1481,30 +1481,31 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
1481
1481
cp_bx. br ( llbb) ;
1482
1482
}
1483
1483
_ => {
1484
- let cleanup_bb =
1484
+ let cleanup_llbb =
1485
1485
Bx :: append_block ( self . cx , self . llfn , & format ! ( "funclet_{:?}" , bb) ) ;
1486
- ret_llbb = cleanup_bb ;
1487
- let mut cleanup_bx = Bx :: build ( self . cx , cleanup_bb ) ;
1486
+ ret_llbb = cleanup_llbb ;
1487
+ let mut cleanup_bx = Bx :: build ( self . cx , cleanup_llbb ) ;
1488
1488
funclet = cleanup_bx. cleanup_pad ( None , & [ ] ) ;
1489
1489
cleanup_bx. br ( llbb) ;
1490
1490
}
1491
1491
}
1492
1492
self . funclets [ bb] = Some ( funclet) ;
1493
1493
ret_llbb
1494
1494
} else {
1495
- let bb = Bx :: append_block ( self . cx , self . llfn , "cleanup" ) ;
1496
- let mut bx = Bx :: build ( self . cx , bb ) ;
1495
+ let cleanup_llbb = Bx :: append_block ( self . cx , self . llfn , "cleanup" ) ;
1496
+ let mut cleanup_bx = Bx :: build ( self . cx , cleanup_llbb ) ;
1497
1497
1498
1498
let llpersonality = self . cx . eh_personality ( ) ;
1499
1499
let llretty = self . landing_pad_type ( ) ;
1500
- let lp = bx . cleanup_landing_pad ( llretty, llpersonality) ;
1500
+ let lp = cleanup_bx . cleanup_landing_pad ( llretty, llpersonality) ;
1501
1501
1502
- let slot = self . get_personality_slot ( & mut bx) ;
1503
- slot. storage_live ( & mut bx) ;
1504
- Pair ( bx. extract_value ( lp, 0 ) , bx. extract_value ( lp, 1 ) ) . store ( & mut bx, slot) ;
1502
+ let slot = self . get_personality_slot ( & mut cleanup_bx) ;
1503
+ slot. storage_live ( & mut cleanup_bx) ;
1504
+ Pair ( cleanup_bx. extract_value ( lp, 0 ) , cleanup_bx. extract_value ( lp, 1 ) )
1505
+ . store ( & mut cleanup_bx, slot) ;
1505
1506
1506
- bx . br ( llbb) ;
1507
- bx . llbb ( )
1507
+ cleanup_bx . br ( llbb) ;
1508
+ cleanup_llbb
1508
1509
}
1509
1510
}
1510
1511
0 commit comments