Great g++ bug! Local destructor isn't called!
Wed Mar 10 15:23:00 GMT 2004
I notice that if the throw(int) specification is taken off the Raiser
constructor, then the ~Object() is called with -O3.
(I'm using GCC 3.3.1 on CygWin / Windows XP.)
Very odd. Good catch. Have you filed a bug?
BTW, in general, I've found that it's usually best NOT to put in throw
specifications for functions / methods. Ever. (This restriction does not
apply to putting in the "throw() -- I throw nothing, ever"
specification. But even that should be used with great caution.)
If C++ did exception specifications like how Java does them, then that'd be
a different story.
More information about the Gcc-help