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

    <tr>
        <th>Summary</th>
        <td>
            void arguments in function types are not accepted
        </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>
    While looking at the behavior for qualified void return types (which clang gets wrong) I found that clang doesn't accept void function arguments. For example:
```c
void f(void x);
```
This code should be valid just like how the following is accepted:
```c
void g(struct undef x);
```
Both `f` and `g` have arguments of incomplete types but that is OK as long as these functions aren't called and because these are not function definitions. However, clang seems to diagnose `f` which is incorrect.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8k09vpDwMxj9NuFgdhcD84cChfatRX-1hLyvtOSSGpM0ks7Ez0377FTDtSHuoQMIRtnn8e4wm8lNE7MX2SWyfK13Ypdy_6DBf5UOP2oemGpL96H87HxBCSm8-TqAZ2CEM6PTFpwxjyvCn6OBHjxYuyVvIyCVH4I8zEgh1uDpvHJig4wQTMsE1pzgJ1cH_MKYSLbDTfEuwCSkKtWfQxuCZ15ZjiYZ9iqDzVE4YmTZwTBnwXZ_OAUXzKOSzkI9iJ9fbrOe1WKjDErwL1Ynm6Z_U9fjLeQKTLAK5VIKFAeGig7fwWogh-DcEl67L8GMKIV1nGp5uMtF-r2ES6kCci2Eo0eL4rZanxA7ETo5iJ0FHO8fTHDt9wTsCSCP4aNJMgPHGeyi84vQEP3-AJghpto1m5YRfJAl0xhW00SGgXT40oNGF8JarM0JMfKdvcfTRL-UbeElXvGAW6r-bdYR4IuAE1uspJsKvGdYN8LTIzRkNbyrbN7ZrOl1hX-_r5tBs6_ZQub5uum5bW5Ta7OTOtoPZ7rsRTT0222ZsVOV7JVUrW9XIuu7kYTPouu3qtm7rvVKy2YtW4kn7sAnhctqkPFWeqGB_6Hbdtgp6wEDL4isV8QrLS6HU_B_kfq55GMpEopXBE9O9C3sO2C923j3w8Y5ndeCT2udiVCWH3jGfaV4RdRTqOHl2ZdiYdBLqOPe_PR7OOb2iYaGOiyoS6rio_hsAAP__WII0ag">