]> git.lizzy.rs Git - rust.git/commitdiff
Simpliy block creation in MirContext
authorMark Simulacrum <mark.simulacrum@gmail.com>
Sun, 1 Jan 2017 18:13:50 +0000 (11:13 -0700)
committerMark Simulacrum <mark.simulacrum@gmail.com>
Wed, 4 Jan 2017 18:34:27 +0000 (11:34 -0700)
src/librustc_trans/mir/mod.rs

index d9c0f047d3cb265d2d61fb4c01b6e20c374dafd8..9e2c7797b53529b115e6add2c0c8550c4c198c04 100644 (file)
@@ -31,7 +31,6 @@
 use syntax::abi::Abi;
 
 use std::iter;
-use std::ffi::CString;
 
 use rustc_data_structures::bitvec::BitVector;
 use rustc_data_structures::indexed_vec::{IndexVec, Idx};
@@ -218,17 +217,10 @@ pub fn trans_mir<'a, 'tcx: 'a>(
     // Allocate a `Block` for every basic block
     let block_bcxs: IndexVec<mir::BasicBlock, BasicBlockRef> =
         mir.basic_blocks().indices().map(|bb| {
-            let name = if bb == mir::START_BLOCK {
-                CString::new("start").unwrap()
+            if bb == mir::START_BLOCK {
+                bcx.build_new_block("start").llbb()
             } else {
-                CString::new(format!("{:?}", bb)).unwrap()
-            };
-            unsafe {
-                llvm::LLVMAppendBasicBlockInContext(
-                    ccx.llcx(),
-                    llfn,
-                    name.as_ptr()
-                )
+                bcx.build_new_block(&format!("{:?}", bb)).llbb()
             }
         }).collect();