]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #15464 : dotdash/rust/bool_stores, r=pcwalton
authorbors <bors@rust-lang.org>
Mon, 7 Jul 2014 03:01:34 +0000 (03:01 +0000)
committerbors <bors@rust-lang.org>
Mon, 7 Jul 2014 03:01:34 +0000 (03:01 +0000)
LLVM doesn't handle i1 value in allocas/memory very well and skips a number of optimizations if it hits it. So we have to do the same thing that Clang does, using i1 for SSA values, but storing i8 in memory.

Fixes #15203.

1  2 
src/librustc/middle/trans/base.rs
src/librustc/middle/trans/callee.rs
src/librustc/middle/trans/common.rs
src/librustc/middle/trans/foreign.rs
src/librustc/middle/trans/glue.rs
src/librustc/middle/trans/intrinsic.rs
src/librustc/middle/trans/reflect.rs

Simple merge
Simple merge
Simple merge
Simple merge
index a59bcda0c59b00f6f457819862392d325e4ee786,d3552baa7925d24e44675db4fad0b5e08e6b7489..d046778485ccf9a90fc938cffbb70464930d4e36
@@@ -502,9 -502,10 +502,9 @@@ fn make_generic_glue(ccx: &CrateContext
      // llfn is expected be declared to take a parameter of the appropriate
      // type, so we don't need to explicitly cast the function parameter.
  
 -    let bcx = fcx.entry_bcx.borrow().clone().unwrap();
      let llrawptr0 = unsafe { llvm::LLVMGetParam(llfn, fcx.arg_pos(0) as c_uint) };
      let bcx = helper(bcx, llrawptr0, t);
-     finish_fn(&fcx, bcx);
+     finish_fn(&fcx, bcx, ty::mk_nil());
  
      llfn
  }
Simple merge