about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2019-08-17 11:29:17 +0200
committerOliver Scherer <github35764891676564198441@oli-obk.de>2019-08-17 11:29:17 +0200
commitab949fdd64433749ebb7f8ef516ee2cdfe217a9d (patch)
tree79c42247ba385c9cbe3e4aa3015009d99c0c6383 /src
parent1fb854a0f5ec500414f7e4fd4eac30357a9dd666 (diff)
downloadrust-ab949fdd64433749ebb7f8ef516ee2cdfe217a9d.tar.gz
rust-ab949fdd64433749ebb7f8ef516ee2cdfe217a9d.zip
Cast only where necessary
Diffstat (limited to 'src')
-rw-r--r--src/librustc_codegen_llvm/common.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/librustc_codegen_llvm/common.rs b/src/librustc_codegen_llvm/common.rs
index a2026e1461d..19f18088579 100644
--- a/src/librustc_codegen_llvm/common.rs
+++ b/src/librustc_codegen_llvm/common.rs
@@ -333,20 +333,21 @@ impl ConstMethods<'tcx> for CodegenCx<'ll, 'tcx> {
         offset: Size,
     ) -> PlaceRef<'tcx, &'ll Value> {
         assert_eq!(alloc.align, layout.align.abi);
+        let llty = self.type_ptr_to(layout.llvm_type(self));
         let llval = if layout.size == Size::ZERO {
             let llval = self.const_usize(alloc.align.bytes());
-            unsafe { llvm::LLVMConstIntToPtr(llval, self.type_ptr_to(self.type_i8p())) }
+            unsafe { llvm::LLVMConstIntToPtr(llval, llty) }
         } else {
             let init = const_alloc_to_llvm(self, alloc);
             let base_addr = self.static_addr_of(init, alloc.align, None);
 
-            unsafe { llvm::LLVMConstInBoundsGEP(
+            let llval = unsafe { llvm::LLVMConstInBoundsGEP(
                 self.const_bitcast(base_addr, self.type_i8p()),
                 &self.const_usize(offset.bytes()),
                 1,
-            )}
+            )};
+            self.const_bitcast(llval, llty)
         };
-        let llval = self.const_bitcast(llval, self.type_ptr_to(layout.llvm_type(self)));
         PlaceRef::new_sized(llval, layout, alloc.align)
     }