https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117969
--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I think the problem is that when we call explain_invalid_constexpr_fn, we don't have current_class_ptr/_ref available, so then build_data_member_initialization doesn't go here: else if (op == current_class_ptr && (same_type_ignoring_top_level_qualifiers_p (TREE_TYPE (TREE_TYPE (member)), current_class_type))) /* Delegating constructor. */ member = op;