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