[PATCH] PR14253: 'warn_unused' attribute for unused warning for non-POD types

Richard Smith richard at metafoo.co.uk
Sun Jul 21 00:55:42 PDT 2013


   case CXXTemporaryObjectExprClass:
-  case CXXConstructExprClass:
+  case CXXConstructExprClass: {
+    QualType Ty = getType();
+    if (const TagType *TT = Ty->getAs<TagType>()) {
+      const TagDecl *Tag = TT->getDecl();

You can use getType()->getAsCXXRecordDecl() here. Otherwise, looks fine,
thanks.

On Sat, Jul 20, 2013 at 4:24 PM, Lubos Lunak <l.lunak at suse.cz> wrote:

> On Tuesday 16 of July 2013, Lubos Lunak wrote:
> > On Tuesday 16 of July 2013, Lubos Lunak wrote:
> > > On Tuesday 16 of July 2013, Richard Smith wrote:
> > > > On Tue, Jul 16, 2013 at 12:50 PM, Lubos Lunak <l.lunak at suse.cz>
> wrote:
> > > > > On Tuesday 16 of July 2013, Richard Smith wrote:
> > > > > > Consider:
> > > > > >
> > > > > > {
> > > > > >   my_lock(my_mutex); // A
> > > > > >   my_lock ml(my_mutex); // B
> > > > > >   my_string("foo"); // C
> > > > > >   my_string ms("foo"); // D
> > > > > > }
> > > > > >
> > > > > > We never warn for a class that is in category (1). my_lock would
> be
> > > > > > in category (2), so we warn on A but not B. my_string would be in
> > > > > > category (3), so we warn on both C and D.
> > > > > >
> > > > > > Which of these does the warn_unused attribute model?
> > > > >
> > > > >  It doesn't model anything. It prevents disabling of the
> > > > > unused-variable warning for whatever type that has the attribute.
> > > >
> > > > So which of the above behaviors do you get? (Or do you get something
> > > > else?)
> > >
> > >  I think you are talking about something slightly different. This is
> > > about the (-W)unused-variable warning. So A and C obviously don't
> apply.
> >
> >  But since you ask, without looking at the code, presumably
> > (-W)unused-result has code similar to unused-variable that also disables
> > the warning if the type in question has non-trivial ctor/dtor, so you
> could
> > do a similar modification there to enable the warning for types with
> > warn_unused attribute.
>
>  The attached patch adds this functionality for the -Wunused-value warning.
>
> --
>  Lubos Lunak
>  l.lunak at suse.cz
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130721/c8054426/attachment.html>


More information about the cfe-commits mailing list