- if common::type_is_fat_ptr(tcx, tupled_arg_ty) {
- // We pass fat pointers as two words, but inside the tuple
- // they are the two sub-fields of a single aggregate field.
- let meta = &fcx.fn_ty.args[idx];
- idx += 1;
- arg.store_fn_arg(bcx, &mut llarg_idx, get_dataptr(bcx, dst));
- meta.store_fn_arg(bcx, &mut llarg_idx, get_meta(bcx, dst));
- } else {
- arg.store_fn_arg(bcx, &mut llarg_idx, dst);
- }
-
- bcx.with_block(|bcx| arg_scope.map(|scope| {
- let byte_offset_of_var_in_tuple =
- machine::llelement_offset(bcx.ccx(), lltuplety, i);
-
- let ops = unsafe {
- [llvm::LLVMRustDIBuilderCreateOpDeref(),
- llvm::LLVMRustDIBuilderCreateOpPlus(),
- byte_offset_of_var_in_tuple as i64]
- };
-
- let variable_access = VariableAccess::IndirectVariable {
- alloca: lltemp,
- address_operations: &ops
- };
- declare_local(bcx, keywords::Invalid.name(),
- tupled_arg_ty, scope, variable_access,
- VariableKind::ArgumentVariable(arg_index + i + 1),
- bcx.fcx().span.unwrap_or(DUMMY_SP));
- }));
+ arg.store_fn_arg(bcx, &mut llarg_idx, get_dataptr(bcx, dst));
+ meta.store_fn_arg(bcx, &mut llarg_idx, get_meta(bcx, dst));
+ } else {
+ arg.store_fn_arg(bcx, &mut llarg_idx, dst);