@@ -203,21 +203,20 @@ struct AssumeBuilderState {
203
203
}
204
204
205
205
void addCall (const CallBase *Call) {
206
- auto addAttrList = [&](AttributeList AttrList) {
207
- for (unsigned Idx = AttributeList::FirstArgIndex;
208
- Idx < AttrList.getNumAttrSets (); Idx++)
209
- for (Attribute Attr : AttrList.getAttributes (Idx)) {
206
+ auto addAttrList = [&](AttributeList AttrList, unsigned NumArgs) {
207
+ for (unsigned Idx = 0 ; Idx < NumArgs; Idx++)
208
+ for (Attribute Attr : AttrList.getParamAttrs (Idx)) {
210
209
bool IsPoisonAttr = Attr.hasAttribute (Attribute::NonNull) ||
211
210
Attr.hasAttribute (Attribute::Alignment);
212
- if (!IsPoisonAttr || Call->isPassingUndefUB (Idx - 1 ))
213
- addAttribute (Attr, Call->getArgOperand (Idx - 1 ));
211
+ if (!IsPoisonAttr || Call->isPassingUndefUB (Idx))
212
+ addAttribute (Attr, Call->getArgOperand (Idx));
214
213
}
215
214
for (Attribute Attr : AttrList.getFnAttrs ())
216
215
addAttribute (Attr, nullptr );
217
216
};
218
- addAttrList (Call->getAttributes ());
217
+ addAttrList (Call->getAttributes (), Call-> arg_size () );
219
218
if (Function *Fn = Call->getCalledFunction ())
220
- addAttrList (Fn->getAttributes ());
219
+ addAttrList (Fn->getAttributes (), Fn-> arg_size () );
221
220
}
222
221
223
222
AssumeInst *build () {
0 commit comments