================
@@ -1013,6 +1013,17 @@ void Sema::InstantiateAttrs(const
MultiLevelTemplateArgumentList &TemplateArgs,
continue;
}
+ if (auto *A = dyn_cast<ReturnsNonNullAttr>(TmplAttr)) {
+ auto *FD = cast<FunctionDecl>(New);
+ QualType ResultType = getFunctionOrMethodResultType(FD);
+ if (!isValidPointerAttrType(ResultType))
+ Diag(A->getLocation(), diag::warn_attribute_return_pointers_only)
+ << A << SourceRange() << getFunctionOrMethodResultSourceRange(FD);
+ else if (!New->hasAttr<ReturnsNonNullAttr>())
+ New->addAttr(A->clone(Context));
+ continue;
+ }
+
----------------
cor3ntin wrote:
we have a `attrNonNullArgCheck` function - could we reuse that?
https://github.com/llvm/llvm-project/pull/200117
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits