diff options
| author | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-05-22 10:28:46 +0200 |
|---|---|---|
| committer | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-05-24 20:49:37 +0200 |
| commit | 64a75ecc8014df45b5b875c5820a0406f41ae7bb (patch) | |
| tree | 3e0a0813fffb2461ae27a48ca0c773d641ccf0bd /src/librustc_codegen_llvm | |
| parent | 3bbf2fd7159e5be5aee8d5c4e11f855862283d26 (diff) | |
| download | rust-64a75ecc8014df45b5b875c5820a0406f41ae7bb.tar.gz rust-64a75ecc8014df45b5b875c5820a0406f41ae7bb.zip | |
change `Value::Bytes` to `Value::Bits`
Diffstat (limited to 'src/librustc_codegen_llvm')
| -rw-r--r-- | src/librustc_codegen_llvm/mir/constant.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/librustc_codegen_llvm/mir/constant.rs b/src/librustc_codegen_llvm/mir/constant.rs index b1161a04128..fc3733f1398 100644 --- a/src/librustc_codegen_llvm/mir/constant.rs +++ b/src/librustc_codegen_llvm/mir/constant.rs @@ -32,11 +32,13 @@ pub fn primval_to_llvm(cx: &CodegenCx, cv: Scalar, layout: &layout::Scalar, llty: Type) -> ValueRef { - let bits = if layout.is_bool() { 1 } else { layout.value.size(cx).bits() }; + let bitsize = if layout.is_bool() { 1 } else { layout.value.size(cx).bits() }; match cv { - Scalar::Undef => C_undef(Type::ix(cx, bits)), - Scalar::Bytes(b) => { - let llval = C_uint_big(Type::ix(cx, bits), b); + Scalar::Bits { defined, .. } if (defined as u64) < bitsize || defined == 0 => { + C_undef(Type::ix(cx, bitsize)) + }, + Scalar::Bits { bits, .. } => { + let llval = C_uint_big(Type::ix(cx, bitsize), bits); if layout.value == layout::Pointer { unsafe { llvm::LLVMConstIntToPtr(llval, llty.to_ref()) } } else { |
