// Name the struct return argument.
if (CGM.ReturnTypeUsesSRet(FI)) {
AI->setName("agg.result");
- AI->addAttr(llvm::Attribute::get(getLLVMContext(),
- llvm::Attribute::NoAlias));
+ AI->addAttr(llvm::AttributeSet::get(getLLVMContext(),
+ AI->getArgNo() + 1,
+ llvm::Attribute::NoAlias));
++AI;
}
llvm::Value *V = AI;
if (Arg->getType().isRestrictQualified())
- AI->addAttr(llvm::Attribute::get(getLLVMContext(),
- llvm::Attribute::NoAlias));
+ AI->addAttr(llvm::AttributeSet::get(getLLVMContext(),
+ AI->getArgNo() + 1,
+ llvm::Attribute::NoAlias));
// Ensure the argument is the correct type.
if (V->getType() != ArgI.getCoerceToType())
}
// Add any parameter attributes.
- llvm::Attribute pAttrs = oldAttrs.getParamAttributes(argNo + 1);
- if (pAttrs.hasAttributes())
- newAttrs.push_back(llvm::AttributeWithIndex::get(argNo + 1, pAttrs));
+ if (oldAttrs.hasAttributes(argNo + 1))
+ newAttrs.
+ push_back(llvm::AttributeWithIndex::
+ get(newFn->getContext(),
+ argNo + 1,
+ oldAttrs.getParamAttributes(argNo + 1)));
}
if (dontTransform)
continue;