<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54538>54538</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Wrong diagnostics: error: _Atomic cannot be applied to incomplete type
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
pmor13
</td>
</tr>
</table>
<pre>
```
_Atomic void* p;
_Atomic struct S* p1;
_Atomic struct S x;
struct S { int i; };
```
```
$ clang t0.c -std=c11 -pedantic -Wall -Wextra -c
<source>:1:1: error: _Atomic cannot be applied to incomplete type 'void'
<source>:2:1: error: _Atomic cannot be applied to incomplete type 'struct S'
<source>:3:1: error: _Atomic cannot be applied to incomplete type 'struct S'
```
In the C standard (all revisions) there is nothing, which forbids / restricts applying `_Atomic` to an incomplete type.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytkU2PmzAQhn-NuYyCwIYQDhzy0ZV67mGPlbEn4MqxkW3Szb_vkCZZdZW9tJUMePzOzPsw7r2-dGxd3FZxYMX2-zb5k1Fw9kYzvoWJid2fSkxhVgm-XdXyUxneHtLjiDU7MC6BIYmCwyPjA8TzQ16BstINkIpcwSomzcRBlSWsJtTSJTJfvUpr6Y1vKUhYqVul2Ec_B4VMfGFiW94ewBB8WDZ3diWd8wl6BDlN1qCG5AlY-dNkMSGky4TAePN7OA08bc__uf37hD-xEP_T4umwvzpII8KerlM6LYOmos0y24BnE413kfF2SQkIJgJ5jsYNjO_h52jUCEcfeqMjVb1QCbkZleKV6UJ5QD43YtotiNJ9pMwz3QndilZmySSL3WvwVKmNHJyPdNnxrweQzcF2Y0rT0oIIaQ0mjXOfUxoF1p7vn9UU_A9UiUIT44z02y91VYtNNnaNqusNb3pco9iIstRtoeumPRZle8RKYGZljzZ2rN6x-pCZjhecF4JXnFa5zoXUfdtWPcdju8a6Z1WBJ2lsvhjnPgxZ6K4M_TxEEq2JKb6LMkYzOMR7fzmn0YduOvlQiuxK211RfwFwKjeE">