================ @@ -272,6 +273,26 @@ QualType ObjCMessageExpr::getCallReturnType(ASTContext &Ctx) const { return Ctx.getReferenceQualifiedType(this); } +std::pair<const NamedDecl *, const Attr *> +ObjCMessageExpr::getUnusedResultAttr(ASTContext &Ctx) const { + // If the callee is marked nodiscard, return that attribute + if (const ObjCMethodDecl *MD = getMethodDecl()) + if (const auto *A = MD->getAttr<WarnUnusedResultAttr>()) + return {nullptr, A}; ---------------- halbi2 wrote:
Yes, if this is changed to `return {MD, A}` then SemaObjC/method-warn-unused-attribute.m fails with ``` ignoring return value of type 'fee' declared with 'warn_unused_result' attribute ``` instead of the expected ``` ignoring return value of function declared with 'warn_unused_result' attribute ``` https://github.com/llvm/llvm-project/pull/142541 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits