<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">