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

--- Comment #6 from Paolo Carlini <paolo.carlini at oracle dot com> ---
In this specific case the broken surrogate std::initializer_list cannot be
completed because no definition is provided. Maybe something like the below
then (untested):

Index: call.c
===================================================================
--- call.c      (revision 259124)
+++ call.c      (working copy)
@@ -6881,7 +6881,9 @@ convert_like_real (conversion *convs, tree expr, t
          return error_mark_node;

        /* Build up the initializer_list object.  */
-       totype = complete_type (totype);
+       totype = complete_type_or_maybe_complain (totype, NULL_TREE, complain);
+       if (!totype)
+         return error_mark_node;
        field = next_initializable_field (TYPE_FIELDS (totype));
        CONSTRUCTOR_APPEND_ELT (vec, field, array);
        field = next_initializable_field (DECL_CHAIN (field));

Reply via email to