<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzFVEtv3CAQ_jX2Ba3FQuxdH3zYPKrmnKo9YxjbtCxYgN3k33cgSZtEm7ZRKlXCNg_PfA8GeqfuuhtxnA0Q6RQU_FDQy4IeioY-tDxcnVZkLfj5_TBEv8hIbkj4OfUi4NquTgqvnX0tZcHOiDTCjiTSSpJNiKrgl3K7JZsZlLBR4-QXYQy-4TZ6QTbyZKKr2xlkBEWUFqN1QUYZXgXlF8EtXqLQK_xni0-DDwHvnU-dCDaKqFcgCgZtdUQFZBKBxLsZSMF2yQn8kDiJSHQgFlbw6F2yEEmchGEJir4N59HiP2M9V3iQcRHmn3ix4v6JHisj8dL2EfelFf9d8mfw4TeFtuUVrehpC-4tC-SaLFZhmigsSrogekAGiShWqBeZqRuIsEQrVKEHjaQG59OM679i-SWu4rRETJllWmc32kbwFvfHaPtNjJCwEMg-QcNCzoZIzN1DxnxufUU-gpU5FIX87SY1NNvpItKcvcOII5nAY7ZPCP10Jv2X7U-cMO7dR6KhVak6rlreilIscXK-m4_Ob3m5eNNNMc65SNkHbKOO09JXGI0DY9bHzwYpJqNxqENYIGCn5g3mmDpZi6FVjANr9zWDFrhs98OuVlT2Laf70ogeTOiK-rxgzMJ3klNgv6gvy_cz0B2jDButGa8p1hvvd30vJWvrummkFMUZhaPQpkp5KufH0nc5Zb-MAReNDjH8WhQh6NECZMLIMOpooLtIl2U6SNLZYQkab86HU45XZcCNYG8-uYyVWUqXdfwA25nlGg>53613</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Clang: confusing diagnostics "error: variable has incomplete type 'void'"
        </td>
    </tr>

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

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

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

<pre>
    Sample code:
```
void v;
struct S s;
```
Invocarion:
```
$ clang t0.c -std=c11 -pedantic -Wall -Wextra -c
```
Expected diagnosctcs:
```
<source>:1:6: error: tentative definition has type 'void' that is never completed
<source>:2:10: error: tentative definition has type 'struct S' that is never completed
```
Actual diagnosctcs:
```
<source>:1:6: error: variable has incomplete type 'void'
<source>:2:10: error: tentative definition has type 'struct S' that is never completed
```
Version:
```
13.0.0
```

As I understand, if the declaration of an identifier for an object is a tentative definition and has non-internal linkage, then the declared type can be an incomplete type. Hence, `variable has incomplete type 'void'` is not a problem here. The problem here is that the `tentative definition has type 'void' that is never completed`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVF1vnSAY_jV6Q47hQNV54UV72mW97rJdI7wqGwcMoGv__V5ou7XN6bZmS5agAsr7fPDg4NRdfyOOiwEinYKCnxf0sqDnRUMfWh5uTiuyFfzifhiiX2UkNyT8mHqx4NpuTgqvnX2tZMHOiDTCTiTSSpJdiKrgl3K_J7sFlLBR4-RnYQze4TZ6QXbyZKGr2wVkBEWUFpN1QUYZXgXlh-BWL1HoFX6zx6vBi4D3zqdOBBtF1BsQBaO2OqICMotA4t0CpGBtcgIfJM4iEh2IhQ08epcsRBInYViCom_DebT491jPFZ7LuArzT7zYcP_EgMlIvLR9xH1pxX-X_Al8-EXQ9ryiFT1twb1lgVyT1SosE4VFSQeiR2SQiGJCvchM3UiEJVqhCj1qJDU6n2bc8AXjl7iK0xKxZJZpnd1pG8Fb3B-j7VcxQcJCIPsEDYOcDZFYe4CM-dz6inwAK_NSFPKnm9TQbKeLSHPxDlccyQweq31E6Kcz6btsf-KE6_76SDS0KlXPVcc7UUYdDfSHdPBTKKSz4xo0_gUeEovHPmBR9uYUMlau3vRzjEuOPHuPbdJxXocKF-HAmO3xsUPBadtwqENYIWCn5s2el3NPO9UqNrSc01bWXSM61Y2tfNfyugHBaWnEACb0RX2BoBa-kVwC-0V9WeqeUYaN1ozXFLPHh3YYpGRdXTeNlKI4o3AU2lSJR-X8VPo-UxrWKeBLo0MMP1-KEPRkATIc1hdrnJ3vl6PzyDYj95n5d3-uz0Q">