<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/93405>93405</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Aggregate initialization of an immovable base with a prvalue attempts to call the deleted copy constructor
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JankoDedic
      </td>
    </tr>
</table>

<pre>
    Works on GCC and MSVC.

Godbolt link: https://godbolt.org/z/KdETMao9K

Code that reproduces the issue:

```cpp
#include <type_traits>

struct Immovable
{
    Immovable() = default;

    Immovable(const Immovable&) = delete;

    Immovable&
    operator=(const Immovable&) = delete;
};

class Base
{
    Immovable immovable;

public:
    Base
    clone()
    {
 return Base{};
    }
};

struct Derived:
    Base
{
 Derived
    clone()
    {
        return Derived{Base::clone()};
 }
};

static_assert(std::is_aggregate_v<Derived>);

int
main()
{
 Derived d0;
    Derived d1 = d0.clone();
}
```

Error message:

```
<source>:31:24: error: call to implicitly-deleted copy constructor of 'Base'
   31 |         return Derived{Base::clone()};
 |                        ^~~~~~~~~~~~~
<source>:15:15: note: copy constructor of 'Base' is implicitly deleted because field 'immovable' has a deleted copy constructor
   15 |     Immovable immovable;
      | ^
<source>:7:5: note: 'Immovable' has been explicitly marked deleted here
    7 |     Immovable(const Immovable&) = delete;
      | ^
1 error generated.
Compiler returned: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVV2PozYU_TXOy9VEYBNIHnggX6vtap9atY8jY98BdwxGtsl29qG_vXIggWQn066KImJs3-Nz7HN9uXOqahFzstqS1X7Be18bm__C21ezR6nEojTyLf_D2FcHpoVPux3wVsLXX3_fLUm0J1ExvD8ZWRrtQav2lbACau87R1hB6JHQYzWMLo2tCD1-J_T4RR5--8rN5sscZGckgq-5B4udNbIX6MDXCMq5HgPabDJJo-Enum7soUy1QvcSgbCdf-vw2VuuvCPsMI903vbCw-emMSdeahzHsu3QAIDZGF0TugHC9iDxhffaE7adg93PFqZ1c2yaTvEaPX4cnk69pkPLvbGE7X8KNtvfLSE0dw623H0oFNQV-za860utxHXzQ9CEFb6ENu24T1PntIhF39t2iMm2c3rDvP0j3uMx7dGqE8oHBKZ1LvP-K6_xGeldorPtGZsVhBVzgDntDzlzr8Qzdw6tJ3TtvBywlHvmVWWx4h6fT4TtrrIOAf4WRbV-aDRctXMFP6gFGd1s57U7HrwRLeci5h65zaH56gdrjYUGnePVw6QbP9nOmd4KDDJYwWLCCpqE_McAEhqCaw3egGo6rYTy-u1pcKwEYbo3OBs7HLSxYF6A0Ox8ADS7imIxkGwH_-vApvC7h6wOf8-ed2XFq8sLWhNSrfgX6qDcTC9c9JYoeO8QXhRqGaZPKUczqLkDDo_25rob8eoq56PcHdVlu6DwXVUZYcWNJkKzz_eESsQW8K-rlIbb12CvkWWNdnYRZD8y-5mb6x3K8eAjqLANlyHK5aVQNJ3SaEcznG8HiO8supA5kxu24QvM4yxOszih2XpR55K_rGm6jjHiLF1TGWeijLJonUSyTJMEFyqnEU2iFU2jTZSw9VKmjIkVj2kaU5owSpIIG670UutTE6ra4lyh8g1LotVC8xK1O5dUSlv8NpYvSkOFtXmIeSr7ypEk0sp5N6F45TXmxeWiANUqr7hW37lXpg0m4-102FByh_BN-Ro4dPbEdY_Avcem8y7k3JB7NT501aK3Or8r1crXfbkUpiH0GIiNf0-dNX-i8IQez3IcocdB7imn_wQAAP__KdpkGg">