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

            Bug ID: 114562
           Summary: ICE when trying to bind rvalue reference to lvalue
                    with comma operator and forwarding reference to
                    pointer
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: liam.jack...@qa-systems.com
  Target Milestone: ---

Created attachment 57846
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57846&action=edit
Source to reproduce ice

Compiling the attached source would expect to raise an error such as 

error: cannot bind rvalue reference of type 'const void*&&' to lvalue of type
'void* const'

Instead the following ICE occurs:

<source>: In instantiation of 'static T Create<T>::create(U&&) [with U = void*
const&; T = MyClass]':
<source>:34:28:   required from here
   34 |     Create<MyClass>::create(MyClass::NONE);
      |     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
<source>:28:13: internal compiler error: in convert_like_internal, at
cp/call.cc:8879
   28 |      return T( ( (beforeParam()), (u) ) );
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0x266d8bc internal_error(char const*, ...)
        ???:0
0xa572eb fancy_abort(char const*, int, char const*)
        ???:0
0xa81334 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ???:0
0xa8265b build_special_member_call(tree_node*, tree_node*, vec<tree_node*,
va_gc, vl_embed>**, tree_node*, int, int)
        ???:0
0xa8ff69 perform_direct_initialization_if_possible(tree_node*, tree_node*,
bool, int)
        ???:0
0xd33f73 build_functional_cast(unsigned int, tree_node*, tree_node*, int)
        ???:0
0xc92ed3 instantiate_decl(tree_node*, bool, bool)
        ???:0
0xcbc0ab instantiate_pending_templates(int)
        ???:0
0xb5a619 c_parse_final_cleanups()
        ???:0
0xdaf328 c_common_parse_file()
        ???:0


It may be possible to construct an example source which is expected to compile
successfully yet still triggers this ICE. This has not been explored.

Reply via email to