From a95dbdef702e4c3a1d6f0801f947eba53cb21a15 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 25 Nov 2010 18:13:20 -0800 Subject: Cast memcpy args to correct types. --- src/comp/middle/trans.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/comp') diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 3c2f6800..31dadcd1 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -637,8 +637,10 @@ fn build_memcpy(@block_ctxt cx, auto memcpy = cx.fcx.ccx.intrinsics.get("llvm.memcpy"); auto src_ptr = cx.build.PointerCast(src, T_ptr(T_i8())); auto dst_ptr = cx.build.PointerCast(dst, T_ptr(T_i8())); - auto size = lib.llvm.llvm.LLVMSizeOf(llty); - auto align = lib.llvm.llvm.LLVMAlignOf(llty); + auto size = cx.build.IntCast(lib.llvm.llvm.LLVMSizeOf(llty), + T_i32()); + auto align = cx.build.IntCast(lib.llvm.llvm.LLVMAlignOf(llty), + T_i32()); auto volatile = C_integral(0, T_i1()); ret res(cx, cx.build.Call(memcpy, vec(dst_ptr, src_ptr, @@ -1670,7 +1672,9 @@ fn declare_intrinsics(ModuleRef llmod) -> hashmap[str,ValueRef] { // FIXME: switch this to 64-bit memcpy when targeting a 64-bit system. let vec[TypeRef] T_memcpy_args = vec(T_ptr(T_i8()), T_ptr(T_i8()), - T_i32(), T_i32(), T_i1()); + T_i32(), + T_i32(), + T_i1()); auto trap = decl_cdecl_fn(llmod, "llvm.trap", T_fn(T_trap_args, T_void())); auto memcpy = decl_cdecl_fn(llmod, "llvm.memcpy", -- cgit v1.2.3