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

Nicholas Krause <xerofoify at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |xerofoify at gmail dot com

--- Comment #2 from Nicholas Krause <xerofoify at gmail dot com> ---
I was unable to find the proper marcos to fix the issue for this patch in the
manual. However these lines:
-      /* FIXME P0135 doesn't say how to handle direct initialization from a
-        type with a suitable conversion operator.  Let's handle it like
-        copy-initialization, but allowing explict conversions.  */
-      tsubst_flags_t sub_complain = tf_warning;
-      if (!is_dummy_object (instance))
-       /* If we're using this to initialize a non-temporary object, don't
-          require the destructor to be accessible.  */
-       sub_complain |= tf_no_cleanup;
       if (BRACE_ENCLOSED_INITIALIZER_P (arg)
-         && !CONSTRUCTOR_IS_DIRECT_INIT (arg))
-       /* An init-list arg needs to convert to the parm type (83937), so fall
-          through to normal processing.  */
-       arg = error_mark_node;
-      else if (!reference_related_p (class_type, TREE_TYPE (arg)))
-       arg = perform_implicit_conversion_flags (class_type, arg,
-                                                sub_complain,
-                                                flags);
+         && !TYPE_HAS_LIST_CTOR (class_type)
+         && CONSTRUCTOR_NELTS (arg) == 1)
+       arg = CONSTRUCTOR_ELT (arg, 0)->value;
+

or the ones added with a + seem to be the issue. Why are we not checked for
initializing references in braces and not checked if its direct as those should
be done regularly for inlining in normal processing. Maybe I'm missing
something but this seems odd. A lot of the other parts of the patch just seems
to be rewrites so this seems most likely.

Reply via email to