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

    <tr>
        <th>Summary</th>
        <td>
            Clang fails to parse initializer list inside template arguments
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c++20,
            clang:frontend
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          ilya-biryukov
      </td>
    </tr>
</table>

<pre>
    ```cpp
struct X {int a;};

template <X> int foo();
void test() {
 foo<{1}>(); // <- Clang errors with 'expected expression'
}
```
This is allowed by C++20 and supported by GCC and MSVC, see [godbolt](https://gcc.godbolt.org/z/5d93qnWjh).

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxcUkFznDwM_TXiotkdrxxgOXAIbPhO36mdNldjBDj1YmqbJJtf3wE26UxnGAF60vN7slQIZpiYS0grSC-JWuLofGnsTR1a42_LL_eatK67lZCJ_dHzDOIC4jFEv-iIzwh5ZaaICmQF-WWNG77HyNfZqsgIsn4G-YRrae8c0Bmo-Cp-dabDyCHu-ZVzB7ZaWUNenTbyp69GBGqAmpX4gLVV04DsvfMB30wcESjn95l15A75ffYcgnETUH5Xl1_uH5_G9t_vowloAipr3Rt32N6wBqqAKhKopg7DMs_Oxx36r6635P_fftRANQZmhLQaXNc6GyG9AJ3HGOcA8nGXO2h9vMNH5weg5gOoSbtC_p5-voxAxXEXknSl7ApZqITLU3aWucxTSpOxPHGvi4K7cyF1r4XShUrTrBVnJYXK8jYxJQmSIj2JU5aSSI89c8_6Qee5zFuhGB4EX5WxR2tfr6uKxISwcJlRJvPEqpZt2DaCSH96ByKges2skwb52Hs3RZ66FUgviS9XskO7DAEehDUhhr_00UTL5X5HvTI2YHQ4Kx8YzWSiUdZ8sMe1C80UTMf4tTfKD8uVpxiSxdvyn2GaOC7tUbsrULOedn8dZu9eWEegZnMWgJrN3J8AAAD__w0n4w4">