[clang] [clang] Diagnose [[nodiscard]] return types in Objective-C++ (PR #142541)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 5 19:39:56 PDT 2025


================
@@ -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:

It is this way in CallExpr::getUnusedResultAttribute too. Probably the NamedDecl is supposed to be set only when it is a type declaration.

https://github.com/llvm/llvm-project/pull/142541


More information about the cfe-commits mailing list