Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-04 Thread Jonathan Wakely
On 4 June 2011 16:49, Jason Merrill wrote: > On 06/04/2011 08:45 AM, Jonathan Wakely wrote: >> >> +                 if (CLASSTYPE_PURE_VIRTUALS (type)) >> +                   warning(OPT_Wdelete_non_virtual_dtor, >> +                           "deleting object of abstract class type %qT" >> +      

Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-04 Thread Jason Merrill
On 06/04/2011 08:45 AM, Jonathan Wakely wrote: + if (CLASSTYPE_PURE_VIRTUALS (type)) + warning(OPT_Wdelete_non_virtual_dtor, + "deleting object of abstract class type %qT" + " which has non-virtual destructor" +

Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-04 Thread Jonathan Wakely
New patch using CLASSTYPE_PURE_VIRTUALS, thanks for that. Bootstrapped and tested again on x86_64-linux, no regressions. ChangeLogs as before, OK for trunk? Index: c-family/c.opt === --- c-family/c.opt (revision 174624) +++ c-fa

Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-03 Thread Jason Merrill
On 06/03/2011 04:20 AM, Jonathan Wakely wrote: On 3 June 2011 02:55, Jason Merrill wrote: Do we really want to warn about the case where the class has no/trivial destructor? I think so. Definitely if it's an abstract class, since it's definitely undefined behaviour. The user might have for

Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-03 Thread Jonathan Wakely
On 3 June 2011 02:55, Jason Merrill wrote: > On 06/02/2011 06:02 PM, Jonathan Wakely wrote: >> >> +             if (!dtor || !DECL_VINDEX (dtor)) > > Do we really want to warn about the case where the class has no/trivial > destructor? I think so. Definitely if it's an abstract class, since it's

Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-02 Thread Jason Merrill
On 06/02/2011 06:02 PM, Jonathan Wakely wrote: + if (!dtor || !DECL_VINDEX (dtor)) Do we really want to warn about the case where the class has no/trivial destructor? + bool abstract = false; + for (x = TYPE_METHODS (type); x; x = DECL_CHAIN (x))

Re: [patch] add -Wdelete-non-virtual-dtor

2011-06-02 Thread Jonathan Wakely
On 2 June 2011 22:27, Jonathan Wakely wrote: > -Wnon-virtual-dtor isn't always what you want, defining a polymorphic > object without a virtual destructor is not necessarily a mistake. You > may never delete such an object so instead of warning when the class > is defined it's more useful to warn o