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

    <tr>
        <th>Summary</th>
        <td>
            Default arguments followed by ellipsis not allowed in in-class function declarations
        </td>
    </tr>

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

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

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

<pre>
    Test code ([CE](https://godbolt.org/z/sonKejdv1)):

```cpp
void f(int = {}...); // OK

struct S {
  void f(int = {}...); // Clang: error: unexpected end of default
                       // argument expression
  void g(int...); // OK
};

void S::g(int = {}...) {} // OK
```

As shown above, this syntax compiles fine for function declarations outside the class, but not for in-class ones. This is inconsistent behavior.

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyMk8FunDAQhp9muIyCwCzLcuDAZruXHHpIXsDYAzj12shjdpM-fQVsG7VKpKKRMGbmY-bnt2Q2gyNqoDxCeUrkHEcfGvXjJjkGmXRevzcvxBGV14QgDlAeH79BeQJxGGOcGIoWxBnEefC68zamPgwgzj9BnNm7J3rV1xxEvUTRQrbGPttCTRNk7dUbjT2Ig3ERoTghVEeoTmmarkVH3Pj4_Wkr5xhmFfF5zctaxP8FPFrpBihapBB8WBazo7eJVCSN5DT6HjX1crZx5X563VkyDPOFXER6mwIxG-8-ehm2Xr6YoDpBcdxGWbOfF2GKdvhigPvD34zfCm6YlpFHf3MoO38lEI8YR8PI7y7KN1T-MhlLjL1xhL0P2M9OReMdalJWBrmsGf0c2WjCOBIqK5kXUDdHdD6uZcY9rPvoHXGKL8s3lnDKOzYcFzk6GuXV-JBC1ia6KXRd1DKhJq_KMs_yqtgnY0M1VVlf9HVfVr3ek6p26tBrkp2sta6qxDQiE2V2yIt8n5dFmQpRi0wdCpFXO6qph11GF2lsau31slguMcwzNXlZ7HZlYmVHlldTC-HohutbEGLxeGiWooduHhh2mTUc-QMTTbTUnDYX_PnLjL231t9IY_eOZK2Z2PAqjLzvG_ehz6f6JnOwzT9HxsRx7lLlLyDOSwv328MU_CupCOK8Ns4gzvfJro34FQAA___4oCDr">