[Bug c++/39164] [C++0x] defaulted dtor redefinition not caught

paolo.carlini at oracle dot com gcc-bugzilla@gcc.gnu.org
Fri Sep 30 00:58:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39164

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|gcc-bugs at gcc dot gnu.org |
            Summary|defaulted dtor redefinition |[C++0x] defaulted dtor
                   |not caught                  |redefinition not caught

--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> 2011-09-30 00:33:08 UTC ---
Now it errors out but says:

39164.C:12:25: error: declaration of ‘_Impl_base::~_Impl_base()’ has a
different exception specifier
39164.C:6:3: error: from previous declaration ‘_Impl_base::~_Impl_base()
noexcept (true)’

I think it's still not what Benjamin expects, because this variant is accepted:

struct _Impl_base
{
  _Impl_base() = default;

#if 1
  ~_Impl_base() = default;
#else
  ~_Impl_base() { }
#endif
};

_Impl_base::~_Impl_base() noexcept (true) { }

int main()
{
  _Impl_base i;
  return 0;
}



More information about the Gcc-bugs mailing list