Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-13 Thread Stephan Bergmann

Nikolai Pretzell wrote:

Hi Stephan and all,

The consensus back then was to keep -Wnon-virtual-dtor switched on 
globally, and only switch it off (together with all other warnings) 
within cppumaker-generated headers, on the grounds that 
-Wnon-virtual-dtor was considered a useful tool to find errors.


However, trying to compile 
cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx, I fear we 
have to rethink the case:  cppu::PropertySetMixin is part of the 
stable API of OOo/URE, is a class template, and contains a non-virtual 
dtor and virtual functions.  Since it is part of the stable API, we 
cannot change its dtor to be virtual (and even if we could, one could 
argue that that would not be what one would want to do, but consider 
it a hack to work around the warning).  And since it is a template, we 
cannot disable the warning locally---the warning is emitted at the end 
of each compilation unit that includes 
cppuhelper/propertysetmixin.hxx, rather than from within 
cppuhelper/propertysetmixin.hxx itself.


The only solution I see is to bite the bullet and globally disable 
-Wnon-virtual-dtor.



Mhmm. Why not make the d'tor protected?
As for compatibility, there should be no binary difference.


The dtor is already protected.  The problem is that changing a dtor from 
non-virtual to virtual affects the vtable (with some compilers, at 
least), so that calls through the vtable could fail after such an 
incompatible change.


-Stephan

Only the use would be constrained, but if cppu::PropertySetMixin is 
indeed used as a mixin, then in most cases (whenever it is not the first 
base class or any other base class is virtual, may be even whenever it 
is not the only base class) calling its d'tor directly would be a bug 
anyway.

So maybe this does not break practical compatibility?

You mentioned somewhere else, that making non-virtual d'tors protected 
does not solve the problem of the warning. But as it solves the defect, 
may be later versions of the compiler will not complain anymore?


So we would at least keep the option to switch the warning on in future.

Nikolai


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-05 Thread Nikolai Pretzell

Hi Stephan and all,

The consensus back then was to keep -Wnon-virtual-dtor switched on 
globally, and only switch it off (together with all other warnings) 
within cppumaker-generated headers, on the grounds that 
-Wnon-virtual-dtor was considered a useful tool to find errors.


However, trying to compile 
cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx, I fear we have 
to rethink the case:  cppu::PropertySetMixin is part of the stable API 
of OOo/URE, is a class template, and contains a non-virtual dtor and 
virtual functions.  Since it is part of the stable API, we cannot change 
its dtor to be virtual (and even if we could, one could argue that that 
would not be what one would want to do, but consider it a hack to work 
around the warning).  And since it is a template, we cannot disable the 
warning locally---the warning is emitted at the end of each compilation 
unit that includes cppuhelper/propertysetmixin.hxx, rather than from 
within cppuhelper/propertysetmixin.hxx itself.


The only solution I see is to bite the bullet and globally disable 
-Wnon-virtual-dtor.


Mhmm. Why not make the d'tor protected?
As for compatibility, there should be no binary difference.
Only the use would be constrained, but if cppu::PropertySetMixin is 
indeed used as a mixin, then in most cases (whenever it is not the first 
base class or any other base class is virtual, may be even whenever it 
is not the only base class) calling its d'tor directly would be a bug 
anyway.

So maybe this does not break practical compatibility?

You mentioned somewhere else, that making non-virtual d'tors protected 
does not solve the problem of the warning. But as it solves the defect, 
may be later versions of the compiler will not complain anymore?


So we would at least keep the option to switch the warning on in future.

Nikolai

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-01 Thread Stephan Bergmann

On Nov 2, 2005, Stephan Bergmann wrote:

Hi all,

http://www.openoffice.org/issues/show_bug.cgi?id=56995 shows the 
following problem:  On compilers later than the GCC 3.4.1 we use at 
Hamburg (e.g., GCC 4.0.2, but from looking at the documentation also GCC 
 3.4.4), -Wall implies a new -Wnon-virtual-dtor which warns about 
classes with virtual functions that do not have a virtual destructor.


On such compilers, this warning will occur for each idlc-generated UNO 
header (com/sun/star/uno/XInterface.hpp etc.).  For reasons of 
compatibility, it is not an option to change those idlc-generated 
headers and add a virtual destructor to them.


Thus, we can either switch off -Wnon-virtual-dtor globally, or switch 
off *all* warnings from within idlc-generated headers (#pragma GCC 
system_header).  The second option is probably preferable, as 
-Wnon-virtual-dtor might point to real issues in other places of the 
code base, and it is unlikely that there would be other warnings from 
any idlc-generated header that we would thus suppress---the 
idlc-generated headers are pretty boiler-plate.


Opinions?

-Stephan


The consensus back then was to keep -Wnon-virtual-dtor switched on 
globally, and only switch it off (together with all other warnings) 
within cppumaker-generated headers, on the grounds that 
-Wnon-virtual-dtor was considered a useful tool to find errors.


However, trying to compile 
cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx, I fear we have 
to rethink the case:  cppu::PropertySetMixin is part of the stable API 
of OOo/URE, is a class template, and contains a non-virtual dtor and 
virtual functions.  Since it is part of the stable API, we cannot change 
its dtor to be virtual (and even if we could, one could argue that that 
would not be what one would want to do, but consider it a hack to work 
around the warning).  And since it is a template, we cannot disable the 
warning locally---the warning is emitted at the end of each compilation 
unit that includes cppuhelper/propertysetmixin.hxx, rather than from 
within cppuhelper/propertysetmixin.hxx itself.


The only solution I see is to bite the bullet and globally disable 
-Wnon-virtual-dtor.


Opinions?

-Stephan

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-01 Thread Thorsten Behrens
Stephan Bergmann [EMAIL PROTECTED] writes:

 The only solution I see is to bite the bullet and globally disable
 -Wnon-virtual-dtor.

 Opinions?

Hi Stephan,

yes, I think so. But I'd still like to have this (and possibly other)
warnings in an optional pedantic mode - to be run after warnings01 is
finished, and inspected for cases where using a non-virtual dtor was
not intentional.

Cheers,

-- 

Thorsten

If you're not failing some of the time, you're not trying hard enough.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-01 Thread Stephan Bergmann

Stephan Bergmann wrote:

On Nov 2, 2005, Stephan Bergmann wrote:


Hi all,

http://www.openoffice.org/issues/show_bug.cgi?id=56995 shows the 
following problem:  On compilers later than the GCC 3.4.1 we use at 
Hamburg (e.g., GCC 4.0.2, but from looking at the documentation also 
GCC  3.4.4), -Wall implies a new -Wnon-virtual-dtor which warns about 
classes with virtual functions that do not have a virtual destructor.


On such compilers, this warning will occur for each idlc-generated UNO 
header (com/sun/star/uno/XInterface.hpp etc.).  For reasons of 
compatibility, it is not an option to change those idlc-generated 
headers and add a virtual destructor to them.


Thus, we can either switch off -Wnon-virtual-dtor globally, or switch 
off *all* warnings from within idlc-generated headers (#pragma GCC 
system_header).  The second option is probably preferable, as 
-Wnon-virtual-dtor might point to real issues in other places of the 
code base, and it is unlikely that there would be other warnings from 
any idlc-generated header that we would thus suppress---the 
idlc-generated headers are pretty boiler-plate.


Opinions?

-Stephan



The consensus back then was to keep -Wnon-virtual-dtor switched on 
globally, and only switch it off (together with all other warnings) 
within cppumaker-generated headers, on the grounds that 
-Wnon-virtual-dtor was considered a useful tool to find errors.


However, trying to compile 
cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx, I fear we have 
to rethink the case:  cppu::PropertySetMixin is part of the stable API 
of OOo/URE, is a class template, and contains a non-virtual dtor and 
virtual functions.  Since it is part of the stable API, we cannot change 
its dtor to be virtual (and even if we could, one could argue that that 
would not be what one would want to do, but consider it a hack to work 
around the warning).  And since it is a template, we cannot disable the 
warning locally---the warning is emitted at the end of each compilation 
unit that includes cppuhelper/propertysetmixin.hxx, rather than from 
within cppuhelper/propertysetmixin.hxx itself.


The only solution I see is to bite the bullet and globally disable 
-Wnon-virtual-dtor.


Opinions?

-Stephan


Besides, all is not lost, as we can keep the corresponding warning on 
wntmsci10 enabled.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-01 Thread Eike Rathke
Hi Malte,

On Wed, Feb 01, 2006 at 13:00:24 +0100, Malte Timmermann wrote:

 When we are done with warnings01, we should have most warnings in the
 default warning level. People don't have to use wall=tr anymore, so this
 one could be a candidate for some extra warning in wall=tr

+1

  Eike

-- 
 OOo/SO Calc core developer. Number formatter stricken i18n transpositionizer.
 GnuPG key 0x293C05FD:  997A 4C60 CE41 0149 0DB3  9E96 2F1A D073 293C 05FD

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2006-02-01 Thread Stephan Bergmann

Eike Rathke wrote:

Hi Malte,

On Wed, Feb 01, 2006 at 13:00:24 +0100, Malte Timmermann wrote:



When we are done with warnings01, we should have most warnings in the
default warning level. People don't have to use wall=tr anymore, so this
one could be a candidate for some extra warning in wall=tr



+1

  Eike


+-0,

as the past has shown that any such mechanism that is not actively 
maintained over time becomes unusable through too much noise (see 
assertions; the current, pre-warnings01 wall=1; maybe also memory leaks 
at program termination time).


-Stephan

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-03 Thread Malte Timmermann
Also +1 for switching this warning off from within idlc-generated
headers only

Malte.

Tino Rachui - Sun Germany - Development - Software Engineer wrote:
 Stephan Bergmann wrote:
 
 
Thus, we can either switch off -Wnon-virtual-dtor globally, or switch 
off *all* warnings from within idlc-generated headers (#pragma GCC 
system_header).  The second option is probably preferable, as 
-Wnon-virtual-dtor might point to real issues in other places of the 
code base, and it is unlikely that there would be other warnings from 
any idlc-generated header that we would thus suppress---the 
idlc-generated headers are pretty boiler-plate.
 
 
 +1 for switching this warning off from within idlc-generated headers only
 
 -Tino
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-03 Thread Jürgen Schmidt

Stephan Bergmann wrote:

Hi all,

http://www.openoffice.org/issues/show_bug.cgi?id=56995 shows the 
following problem:  On compilers later than the GCC 3.4.1 we use at 
Hamburg (e.g., GCC 4.0.2, but from looking at the documentation also GCC 
 3.4.4), -Wall implies a new -Wnon-virtual-dtor which warns about 
classes with virtual functions that do not have a virtual destructor.


On such compilers, this warning will occur for each idlc-generated UNO 
header (com/sun/star/uno/XInterface.hpp etc.).  For reasons of 
compatibility, it is not an option to change those idlc-generated 
headers and add a virtual destructor to them.


Thus, we can either switch off -Wnon-virtual-dtor globally, or switch 
off *all* warnings from within idlc-generated headers (#pragma GCC 
system_header).  The second option is probably preferable, as 
-Wnon-virtual-dtor might point to real issues in other places of the 
code base, and it is unlikely that there would be other warnings from 
any idlc-generated header that we would thus suppress---the 
idlc-generated headers are pretty boiler-plate.


+1 for switching off this warnings in the generated header

- Juergen



Opinions?

-Stephan

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-03 Thread Thorsten Behrens
Stephan Bergmann [EMAIL PROTECTED] writes:

 On such compilers, this warning will occur for each idlc-generated UNO
 header (com/sun/star/uno/XInterface.hpp etc.).  For reasons of
 compatibility, it is not an option to change those idlc-generated
 headers and add a virtual destructor to them.

Is there really no feasible way to close that hole? I'm perfectly fine
with the pragma solution, but still think it would be a good idea to
forbid calling base class destructors (what about declaring a
protected non-virtual destructor in XInterface?).

Cheers,

-- 

Thorsten

If you're not failing some of the time, you're not trying hard enough.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-03 Thread Stephan Bergmann

Thorsten Behrens wrote:

Stephan Bergmann [EMAIL PROTECTED] writes:



On such compilers, this warning will occur for each idlc-generated UNO
header (com/sun/star/uno/XInterface.hpp etc.).  For reasons of
compatibility, it is not an option to change those idlc-generated
headers and add a virtual destructor to them.



Is there really no feasible way to close that hole? I'm perfectly fine
with the pragma solution, but still think it would be a good idea to
forbid calling base class destructors (what about declaring a
protected non-virtual destructor in XInterface?).


Good idea, thanks.  Adding protected non-virtual dtor to all the 
interface classes generated by codemaker.


-Stephan


Cheers,


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-02 Thread Daniel Boelzle
 On such compilers, this warning will occur for each idlc-generated UNO 
 header (com/sun/star/uno/XInterface.hpp etc.).  For reasons of 
 compatibility, it is not an option to change those idlc-generated 
 headers and add a virtual destructor to them.

Should be sufficient using this pragma only in interface header files
generated by cppumaker.

 
 Thus, we can either switch off -Wnon-virtual-dtor globally, or switch 
 off *all* warnings from within idlc-generated headers (#pragma GCC 
 system_header).  The second option is probably preferable, as 
 -Wnon-virtual-dtor might point to real issues in other places of the 
 code base, and it is unlikely that there would be other warnings from 
 any idlc-generated header that we would thus suppress---the 
 idlc-generated headers are pretty boiler-plate.

+1, switching off globally is really no good option.

-Daniel

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-02 Thread Kohei Yoshida
On 11/2/05, Stephan Bergmann [EMAIL PROTECTED] wrote:

 Thus, we can either switch off -Wnon-virtual-dtor globally, or switch
 off *all* warnings from within idlc-generated headers (#pragma GCC
 system_header).  The second option is probably preferable, as
 -Wnon-virtual-dtor might point to real issues in other places of the
 code base, and it is unlikely that there would be other warnings from
 any idlc-generated header that we would thus suppress---the
 idlc-generated headers are pretty boiler-plate.

I like the second option.  So, +1 for using the pragma macro to
locally suppress the warning within hdl headers.  Because of the
severity of overlooking this warning, turning it off globally would be
IMO a very bad move.

Kohei

--
Kohei Yoshida
OpenOffice.org Calc contributor
http://kohei.us/ooo/

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [dev] warnings01: -Wnon-virtual-dtor

2005-11-02 Thread Tino Rachui - Sun Germany - Development - Software Engineer

Stephan Bergmann wrote:

Thus, we can either switch off -Wnon-virtual-dtor globally, or switch 
off *all* warnings from within idlc-generated headers (#pragma GCC 
system_header).  The second option is probably preferable, as 
-Wnon-virtual-dtor might point to real issues in other places of the 
code base, and it is unlikely that there would be other warnings from 
any idlc-generated header that we would thus suppress---the 
idlc-generated headers are pretty boiler-plate.


+1 for switching this warning off from within idlc-generated headers only

-Tino

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]