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

    <tr>
        <th>Summary</th>
        <td>
            Zero variable arguments should be allowed in C23
        </td>
    </tr>

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

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

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

<pre>
    Clang doesn't allow zero variable arguments in macro invocations of macros with named arguments and then variable arguments. Here is an example program (https://godbolt.org/z/xbacsGqbM):
```c
#include<stdarg.h>
void foo(...){
    va_list v;
    va_start(v);
 va_arg(v,int(*)[5]);
    va_end(v);
}
int main(void){
 foo(&(int[]){1,2,3,4,5});
}
```
Clang complains here about not having a comma in `va_start` and wants `va_start(v,)`. This restriction was removed in C23 so this code should be allowed without any complaint.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U01zpDgM_TXiogplzPeBQ0Jvby5729NeUgK7wVvG7rUNneTXbxkymSSTqe4qsPT89JCeyHs1GSk7KB-gPCW0htm67pF0_K0vdCGl82Sw4qXrNZkJhZXeAK8Dktb2hq_SWdzIKRq0RHLTukgTPCqDC43OojKbHSkoazzayxH0eFNhRkOLFB_ukBEYZmm-4UvxUTqJKoJQPtNy1RKvzk6OFgTezCFcPeT3wM_Az5MVg9UhtW4Cfn4Ffn4eaPR__jf8BbyNMHYCdg8VO_7j25nnyox6FRLy3gdBbkpnyP84sptVAi_WAm_SNI089cORQUTc6EkrH3CD_HPUB3IBeLPtlX_kNnqiKC6Ge2UiAPh9hJQPJZSnT-CDSBrxlQbq0_GiTMCFlIkAq8QncYdk4BXwJlbaJ30gMuA9B97nwPsCeF9Gwu_43zt1HA8rjHa5alLG4xxnQ4NdAxobcKZNmQkpIhaKVoCKvbeiYvugbxRH_jFxNCPWr1iKf8_Ko5M-ODVG9-CN4nmxmxSRsuc5eoshwkYrJPrZrlrgIA9nSrGbLGoi8_IuNqSJ6HLR5i0lsstq1raszZoimbtWlk0mhrK6XEohqKpZyyo5XERW51TzKlEdZ7xgOWuyoqh4kYqMsaIRWc7ypi5qDgWTCymdar0t0X2J8n6VXVMUbZloGqT2-6pxbuQN9yRwHjfPdfHO3bBOHgoWreR_sgQVtOz--c2q_frhR3uS1enuy2KoMK9DOtoF-DnSvz3urs7-K8cA_LyL8sDPu-j_AwAA__8IS0cE">