https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90254
Nicholas Krause <xerofoify at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerofoify at gmail dot com --- Comment #5 from Nicholas Krause <xerofoify at gmail dot com> --- Seems to be regressing due to missing a check for another constructor type in type_has_nontrivial_copy_init or somewhere up the stack.Both the other two in the last reported case are fine. Therefore I'm assuming is not be found as a trivial move or copy constructor somewhere and this looks to the compiler like a different constructor type: B b{foo()}; Seems to be a trivial constructor to me but the compiler seems to be ICEing because its not or detected as such and therefore is not correctly building special temp member functions. The original patch seems to causing some issue in this way.