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

Lubos Lunak l.lunak at suse.cz
Tue Jul 16 14:17:30 PDT 2013


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. B and D will 
cause the warning if the relevant variable has at most trivial ctor/dtor 
called (before my patch), or has at most even non-trivial ctor/dtor called 
but also has the attribute set (added by the patch). That's all.

-- 
 Lubos Lunak
 l.lunak at suse.cz



More information about the cfe-commits mailing list