[cfe-dev] warn_unused_result attribute on class definition not applying to methods declared in that class
Craig Topper via cfe-dev
cfe-dev at lists.llvm.org
Tue Apr 18 00:05:28 PDT 2017
I think this is because of the behavior outlined here.
/// \brief Returns true if this function or its return type has the
/// warn_unused_result attribute. If the return type has the attribute and
/// this function is a method of the return type's class, then false will
be
/// returned to avoid spurious warnings on member methods such as
assignment
/// operators.
bool hasUnusedResultAttr() const { return getUnusedResultAttr() !=
nullptr; }
~Craig
On Mon, Apr 17, 2017 at 11:48 PM, Craig Topper <craig.topper at gmail.com>
wrote:
> It seems if warn_unused_result is put on a class definition it doesn't
> apply to any of the methods in that class that return the class type?
>
> This test should generate 2 warnings but only generates one.
>
> https://godbolt.org/g/kImv9k
>
> The ArrayRef and APInt classes both do this. I accidentally created a case
> where I didn't consume the result of APInt::trunc and received no warning.
>
> ~Craig
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170418/aa1bc0da/attachment.html>
More information about the cfe-dev
mailing list