]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #18041 : arielb1/rust/no-size-overflow, r=pnkfelix
authorbors <bors@rust-lang.org>
Sat, 18 Oct 2014 17:02:13 +0000 (17:02 +0000)
committerbors <bors@rust-lang.org>
Sat, 18 Oct 2014 17:02:13 +0000 (17:02 +0000)
Should fix #17913.

Also clean-up u64/u32-ness. I really should split this commit and add tests (I have no idea how to add them).

15 files changed:
1  2 
src/librustc/middle/trans/_match.rs
src/librustc/middle/trans/adt.rs
src/librustc/middle/trans/base.rs
src/librustc/middle/trans/builder.rs
src/librustc/middle/trans/common.rs
src/librustc/middle/trans/context.rs
src/librustc/middle/trans/controlflow.rs
src/librustc/middle/trans/debuginfo.rs
src/librustc/middle/trans/expr.rs
src/librustc/middle/trans/foreign.rs
src/librustc/middle/trans/glue.rs
src/librustc/middle/trans/intrinsic.rs
src/librustc/middle/trans/meth.rs
src/librustc/middle/trans/tvec.rs
src/librustc/middle/trans/type_of.rs

Simple merge
index 2f06f16ace1311cefea3e752e579e4bf4a8a07a9,69fd9a9cc1316b757a7ce4e77246d1fb4a2faa9f..7ec0f8716c11cbaea6598fd62e4f5daede170462
@@@ -539,12 -584,12 +585,12 @@@ fn generic_type_of(cx: &CrateContext
                                   Type::array(&Type::i64(cx), align_units),
                  a if a.count_ones() == 1 => Type::array(&Type::vector(&Type::i32(cx), a / 4),
                                                                align_units),
 -                _ => fail!("unsupported enum alignment: {:?}", align)
 +                _ => fail!("unsupported enum alignment: {}", align)
              };
-             assert_eq!(machine::llalign_of_min(cx, pad_ty) as u64, align);
-             assert_eq!(align % discr_size, 0);
+             assert_eq!(machine::llalign_of_min(cx, pad_ty), align);
+             assert_eq!(align_s % discr_size, 0);
              let fields = vec!(discr_ty,
-                            Type::array(&discr_ty, align / discr_size - 1),
+                            Type::array(&discr_ty, align_s / discr_size - 1),
                             pad_ty);
              match name {
                  None => Type::struct_(cx, fields.as_slice(), false),
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index cc28b8032087f004b09e0c54d6019a9265add49d,00a94b120ed93e5d2ece3c75016ab2144fb283db..f6373ecc04c81fb1890588997d945b63398c8f0d
@@@ -474,9 -474,9 +474,9 @@@ pub fn trans_native_call<'blk, 'tcx>(bc
              let llforeign_align = machine::llalign_of_min(ccx, llforeign_ret_ty);
              let llrust_align = machine::llalign_of_min(ccx, llrust_ret_ty);
              let llalign = cmp::min(llforeign_align, llrust_align);
 -            debug!("llrust_size={:?}", llrust_size);
 +            debug!("llrust_size={}", llrust_size);
              base::call_memcpy(bcx, llretptr_i8, llscratch_i8,
-                               C_uint(ccx, llrust_size as uint), llalign as u32);
+                               C_uint(ccx, llrust_size), llalign as u32);
          }
      }
  
Simple merge
Simple merge
Simple merge
Simple merge