@@ -2090,6 +2090,10 @@ void ModuleImport::convertParameterAttributes(llvm::Function *func,
20902090void ModuleImport::convertParameterAttributes (llvm::CallBase *call,
20912091 CallOpInterface callOp,
20922092 OpBuilder &builder) {
2093+ auto argAttrsOpInterface =
2094+ dyn_cast<ArgumentAttributesOpInterface>(callOp.getOperation ());
2095+ if (!argAttrsOpInterface)
2096+ return ;
20932097 auto llvmAttrs = call->getAttributes ();
20942098 SmallVector<llvm::AttributeSet> llvmArgAttrsSet;
20952099 bool anyArgAttrs = false ;
@@ -2108,15 +2112,15 @@ void ModuleImport::convertParameterAttributes(llvm::CallBase *call,
21082112 SmallVector<DictionaryAttr> argAttrs;
21092113 for (auto &llvmArgAttrs : llvmArgAttrsSet)
21102114 argAttrs.emplace_back (convertParameterAttribute (llvmArgAttrs, builder));
2111- callOp .setArgAttrsAttr (getArrayAttr (argAttrs));
2115+ argAttrsOpInterface .setArgAttrsAttr (getArrayAttr (argAttrs));
21122116 }
21132117
21142118 llvm::AttributeSet llvmResAttr = llvmAttrs.getRetAttrs ();
21152119 if (!llvmResAttr.hasAttributes ())
21162120 return ;
21172121 SmallVector<DictionaryAttr, 1 > resAttrs;
21182122 resAttrs.emplace_back (convertParameterAttribute (llvmResAttr, builder));
2119- callOp .setResAttrsAttr (getArrayAttr (resAttrs));
2123+ argAttrsOpInterface .setResAttrsAttr (getArrayAttr (resAttrs));
21202124}
21212125
21222126LogicalResult ModuleImport::processFunction (llvm::Function *func) {
0 commit comments