From af086aa8ef0628cc21d4dc5831258bf45c9bb872 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 10 Jan 2012 13:26:21 -0800 Subject: [PATCH] rustc: Remove sret attributes from functions Something about the way we're using it is causing incorrect code generation. Closes #1343 --- src/comp/middle/trans.rs | 5 ----- src/comp/middle/trans_build.rs | 11 +++-------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index c884daacf58..6534c7d9b62 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -4475,11 +4475,6 @@ fn create_llargs_for_fn_args(cx: @fn_ctxt, ty_self: self_arg, fn copy_args_to_allocas(fcx: @fn_ctxt, bcx: @block_ctxt, args: [ast::arg], arg_tys: [ty::arg]) -> @block_ctxt { - if fcx_ccx(fcx).sess.get_opts().extra_debuginfo { - llvm::LLVMAddAttribute(llvm::LLVMGetFirstParam(fcx.llfn), - lib::llvm::LLVMStructRetAttribute as - lib::llvm::llvm::Attribute); - } let arg_n: uint = 0u, bcx = bcx; for arg in arg_tys { let id = args[arg_n].id; diff --git a/src/comp/middle/trans_build.rs b/src/comp/middle/trans_build.rs index 40c13d64b4a..1295e24b110 100644 --- a/src/comp/middle/trans_build.rs +++ b/src/comp/middle/trans_build.rs @@ -93,14 +93,9 @@ fn Invoke(cx: @block_ctxt, Fn: ValueRef, Args: [ValueRef], assert (!cx.terminated); cx.terminated = true; unsafe { - let instr = llvm::LLVMBuildInvoke(B(cx), Fn, vec::to_ptr(Args), - vec::len(Args), Then, Catch, - noname()); - if bcx_ccx(cx).sess.get_opts().debuginfo { - llvm::LLVMAddInstrAttribute(instr, 1u, - lib::llvm::LLVMStructRetAttribute as - lib::llvm::llvm::Attribute); - } + llvm::LLVMBuildInvoke(B(cx), Fn, vec::to_ptr(Args), + vec::len(Args), Then, Catch, + noname()); } }