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

    <tr>
        <th>Summary</th>
        <td>
            [Clang] `int(...)` not parsed as variadic function type
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    Variadic functions can be declared without named parameter since C23, so `int(...)` should be a valid type-name that represent such a function. Clang rejects the following code, GCC accepts.

```
int va_fn(...);

// As typeof() argument
typeof(int(...))*fn_ptr = &va_fn;

// As _Generic association type
int i = _Generic(typeof(va_fn), int(...):1);
```
https://godbolt.org/z/zsc6Yf3GP
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxsks1upDgQx5_GXEpBpsCkOXDodNS57mmlPUWFKcArt41s01H26VdmmGSSGakQEjL_j_KPYjSzY-6FehLquaAtLT7007ZE54rBj-_93xQMjUbDtDmdjHcRNDkYGEbWlgKP8GbS4rcEjm48wkqBbpw4QDROM1ywFniB6EG00rgk8FSWpcBOtBLi4jc7ZjWCO1kzQnpf-SErQVooQeA1cGSXIG56AfqIUcLFkpsh8L-sU4S0MEzeWv9m3Azaj5xdXy4XIK15TbEU8pynlcfIs3EJ7vQ6uc9M9dNxDK8Cr3COeyA_CTwJ7IDCvN3YJSHPH9-_dMpzntzrmgKI-hkEtj8cfhd-fWHHwWigGL02lFvtbkcyswv8PCXw9OF4ZO5ywy_u9bn6LPFL0SWlNYr6MJ_9OHibSh9mgdf_8hN1-89Uv_xVjH09dnVHBffVo5JtLdVjVSz9SUucTlNd1ayauuGmQVYV8dQqRU2HhelRopItImLVVlV5ko0ibFrS9Ni2QycayTcytrT2fsvehYlx475qFCpZWBrYxh1ERJ2vViBmJkOff3gYtjmKRloTU_yUSCbZnd4dBqGe_wSZ8ylTGXkEinD_DvS-82ILtv-2JpOWbSi1vwm8Zsfj9bAGn5kTeN0bRIHXo8S9x_8DAAD__33GBho">