@@ -1154,14 +1154,12 @@ DataFlowSanitizer::buildWrapperFunction(Function *F, StringRef NewFName,
1154
1154
Function *NewF = Function::Create(NewFT, NewFLink, F->getAddressSpace(),
1155
1155
NewFName, F->getParent());
1156
1156
NewF->copyAttributesFrom(F);
1157
- NewF->removeAttributes(
1158
- AttributeList::ReturnIndex,
1157
+ NewF->removeRetAttrs(
1159
1158
AttributeFuncs::typeIncompatible(NewFT->getReturnType()));
1160
1159
1161
1160
BasicBlock *BB = BasicBlock::Create(*Ctx, "entry", NewF);
1162
1161
if (F->isVarArg()) {
1163
- NewF->removeAttributes(AttributeList::FunctionIndex,
1164
- AttrBuilder().addAttribute("split-stack"));
1162
+ NewF->removeFnAttrs(AttrBuilder().addAttribute("split-stack"));
1165
1163
CallInst::Create(DFSanVarargWrapperFn,
1166
1164
IRBuilder<>(BB).CreateGlobalStringPtr(F->getName()), "",
1167
1165
BB);
@@ -1464,8 +1462,7 @@ bool DataFlowSanitizer::runImpl(Module &M) {
1464
1462
Function *NewF = Function::Create(NewFT, F.getLinkage(),
1465
1463
F.getAddressSpace(), "", &M);
1466
1464
NewF->copyAttributesFrom(&F);
1467
- NewF->removeAttributes(
1468
- AttributeList::ReturnIndex,
1465
+ NewF->removeRetAttrs(
1469
1466
AttributeFuncs::typeIncompatible(NewFT->getReturnType()));
1470
1467
for (Function::arg_iterator FArg = F.arg_begin(),
1471
1468
NewFArg = NewF->arg_begin(),
@@ -1513,7 +1510,7 @@ bool DataFlowSanitizer::runImpl(Module &M) {
1513
1510
std::string(F.getName()),
1514
1511
WrapperLinkage, NewFT);
1515
1512
if (getInstrumentedABI() == IA_TLS)
1516
- NewF->removeAttributes(AttributeList::FunctionIndex, ReadOnlyNoneAttrs);
1513
+ NewF->removeFnAttrs( ReadOnlyNoneAttrs);
1517
1514
1518
1515
Value *WrappedFnCst =
1519
1516
ConstantExpr::getBitCast(NewF, PointerType::getUnqual(FT));
@@ -2953,8 +2950,7 @@ bool DFSanVisitor::visitWrappedCallBase(Function &F, CallBase &CB) {
2953
2950
2954
2951
// Custom functions returning non-void will write to the return label.
2955
2952
if (!FT->getReturnType()->isVoidTy()) {
2956
- CustomFn->removeAttributes(AttributeList::FunctionIndex,
2957
- DFSF.DFS.ReadOnlyNoneAttrs);
2953
+ CustomFn->removeFnAttrs(DFSF.DFS.ReadOnlyNoneAttrs);
2958
2954
}
2959
2955
}
2960
2956
@@ -3176,9 +3172,8 @@ void DFSanVisitor::visitCallBase(CallBase &CB) {
3176
3172
NewCB = IRB.CreateCall(NewFT, Func, Args);
3177
3173
}
3178
3174
NewCB->setCallingConv(CB.getCallingConv());
3179
- NewCB->setAttributes(CB.getAttributes().removeAttributes(
3180
- *DFSF.DFS.Ctx, AttributeList::ReturnIndex,
3181
- AttributeFuncs::typeIncompatible(NewCB->getType())));
3175
+ NewCB->setAttributes(CB.getAttributes().removeRetAttributes(
3176
+ *DFSF.DFS.Ctx, AttributeFuncs::typeIncompatible(NewCB->getType())));
3182
3177
3183
3178
if (Next) {
3184
3179
ExtractValueInst *ExVal = ExtractValueInst::Create(NewCB, 0, "", Next);
0 commit comments