rsmith added inline comments.
================ Comment at: clang/include/clang/Basic/Attr.td:2943 +def WarnUnusedResultClang : InheritableAttr { + let Spellings = [CXX11<"clang", "warn_unused_result">]; + let Subjects = SubjectList<[ObjCMethod, Enum, Record, FunctionLike, TypedefName]>; ---------------- Should we allow this new behavior for the GNU attribute spelling too? (Not `[[gnu::..]]` but `__attribute__((warn_unused_result))`). We don't generally avoid extending the meaning of `__attribute__((...))` compared to GCC. ================ Comment at: clang/lib/AST/Expr.cpp:1525-1527 + if (const auto *TD = getCallReturnType(Ctx)->getAs<TypedefType>()) + if (const auto *A = TD->getDecl()->getAttr<WarnUnusedResultAttr>()) + return A; ---------------- This should loop over `TypedefType` sugar; the attribute could be in a nested typedef. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102122/new/ https://reviews.llvm.org/D102122 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits