https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105734
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced testcase: namespace hh { struct nothing {}; template<typename A = int> struct expression_decomposer { auto h() { return expression_decomposer<bool>(); } }; } template <typename T> void bar() { auto m = hh::expression_decomposer( hh::expression_decomposer{}.h()); m.~expression_decomposer(); } void foo() { bar<int>(); }