The latter issue could be addressed by something like:
Index: decl.c =================================================================== --- decl.c (revision 185715) +++ decl.c (working copy) @@ -1136,7 +1136,10 @@ check_redeclaration_exception_specification (tree if ((pedantic || ! DECL_IN_SYSTEM_HEADER (old_decl)) && ! DECL_IS_BUILTIN (old_decl) && flag_exceptions - && !comp_except_specs (new_exceptions, old_exceptions, ce_normal)) + && !comp_except_specs (new_exceptions, old_exceptions, ce_normal) + && !(DECL_DESTRUCTOR_P (new_decl) + && cxx_dialect >= cxx0x + && !new_exceptions && TYPE_NOEXCEPT_P (old_type))) { error ("declaration of %qF has a different exception specifier", new_decl);
The latter issue could be addressed by something like:
Index: decl.c ======= ======= ======= ======= ======= ======= ======= ======= ==== tion_exception_ specification (tree SYSTEM_ HEADER (old_decl))
=======
--- decl.c (revision 185715)
+++ decl.c (working copy)
@@ -1136,7 +1136,10 @@ check_redeclara
if ((pedantic || ! DECL_IN_
&& ! DECL_IS_BUILTIN (old_decl)
&& flag_exceptions
- && !comp_except_specs (new_exceptions, old_exceptions, ce_normal))
+ && !comp_except_specs (new_exceptions, old_exceptions, ce_normal)
+ && !(DECL_DESTRUCTOR_P (new_decl)
+ && cxx_dialect >= cxx0x
+ && !new_exceptions && TYPE_NOEXCEPT_P (old_type)))
{
error ("declaration of %qF has a different exception specifier",
new_decl);