https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88699
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dmalcolm at gcc dot gnu.org --- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> --- The crash occurs during this assertion in add_method: 1136 /* A class should never have more than one destructor. */ 1137 gcc_assert (!current_fns || !DECL_DESTRUCTOR_P (method)); when method is a using_decl whereas DECL_DESTRUCTOR_P presumably wants a function_decl. This patch stops the crash for comment #4 (though maybe it's papering over the problem): diff --git a/gcc/cp/class.c b/gcc/cp/class.c index e7897f2..e8773c2 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -1134,7 +1134,7 @@ add_method (tree type, tree method, bool via_using) } /* A class should never have more than one destructor. */ - gcc_assert (!current_fns || !DECL_DESTRUCTOR_P (method)); + gcc_assert (!current_fns || via_using || !DECL_DESTRUCTOR_P (method)); current_fns = ovl_insert (method, current_fns, via_using);