diff options
| -rw-r--r-- | src/librustc_codegen_llvm/mir/constant.rs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/librustc_codegen_llvm/mir/constant.rs b/src/librustc_codegen_llvm/mir/constant.rs index 1fa3fb79e24..ef0bc3ed330 100644 --- a/src/librustc_codegen_llvm/mir/constant.rs +++ b/src/librustc_codegen_llvm/mir/constant.rs @@ -70,8 +70,11 @@ pub fn scalar_to_llvm(cx: &CodegenCx, &C_usize(cx, ptr.offset.bytes()), 1, ) }; - let llval = unsafe { llvm::LLVMConstPtrToInt(llval, llty.to_ref()) }; - consts::bitcast(llval, llty) + if layout.value != layout::Pointer { + unsafe { llvm::LLVMConstPtrToInt(llval, llty.to_ref()) } + } else { + consts::bitcast(llval, llty) + } } } } |
