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

            Bug ID: 99281
           Summary: internal compiler error: in assign_temp, at
                    function.c:984
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jonathan.poelen at gmail dot com
  Target Milestone: ---

g++ -std=c++17 test.cpp
during RTL pass: expand
test.cpp: In function ‘int main()’:
test.cpp:27:5: internal compiler error: in assign_temp, at function.c:984
   27 |     pack_type<X>{get(1)};
      |     ^~~~~~~~~~~~~~~~~~~~

Compile with -O1 or higher.

struct Data
{
    Data() {}
    ~Data() {}

    long long i;
};

struct X
{
    Data a;
    int b;
};

template<class T>
X get(T const&)
{
    return X{};
}

template<class... Ts>
struct pack_type : Ts...
{};

int main()
{
    pack_type<X>{get(1)};
}

Reply via email to