https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96994

--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Yes, a way to fix this would be to do the build_functional_cast in
check_initializer:

 6892           else if (DECL_DECLARED_CONSTEXPR_P (decl)
 6893                    || (flags & LOOKUP_CONSTINIT))
 6894             {      
 6895               /* Declared constexpr or constinit, but no suitable
initializer;
 6896                  massage init appropriately so we can pass it into
 6897                  store_init_value for the error.  */
 6898               if (CLASS_TYPE_P (type)
 6899                   && (!init || TREE_CODE (init) == TREE_LIST))
 6900                 { 
 6901                   init = build_functional_cast (input_location, type,
 6902                                                 init, tf_none);

Reply via email to