aaron.ballman requested review of this revision. aaron.ballman added a comment.
There's enough churn based on the review feedback that this should probably have a second round of review just to be sure. ================ Comment at: lib/AST/Expr.cpp:2281-2286 + // If there is no FunctionDecl for the call, check the return type of the + // callee to see if it was declared with the WarnUnusedResult attribute. + if (!Func && !HasWarnUnusedResultAttr) { + if (const TagDecl *TD = CE->getCallReturnType(Ctx)->getAsTagDecl()) + HasWarnUnusedResultAttr = TD->hasAttr<WarnUnusedResultAttr>(); + } ---------------- erik.pilkington wrote: > This duplicates some logic from FunctionDecl::hasUnusedResultAttr(), maybe we > should move that member function to the CallExpr? Good suggestion -- I think that cleans up the interface nicely. ================ Comment at: test/CXX/dcl.dcl/dcl.attr/dcl.attr.nodiscard/p2.cpp:51 + + one(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}} + two(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}} ---------------- erik.pilkington wrote: > This diagnostic should also probably be improved at some point, the function > wasn't declared 'nodiscard', the type was. Yeah, I noticed that as well. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D55949/new/ https://reviews.llvm.org/D55949 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits