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

    <tr>
        <th>Summary</th>
        <td>
            counted_by cannot be used with C23 attribute syntax
        </td>
    </tr>

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

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

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

<pre>
    [The docs](https://clang.llvm.org/docs/AttributeReference.html#counted-by-counted-by-or-null-sized-by-sized-by-or-null) claim that `counted_by` has a C23 attribute syntax equivalent of `[[clang::counted_by(...)]]`.  However:

```console
tavianator@graphene$ cat foo.c
struct foo {
        int n;
        int a[] [[clang::counted_by(n)]];
};

struct bar {
        int n;
        int a[] __attribute__((counted_by(n)));
};
tavianator@graphene$ clang -fsyntax-only foo.c
foo.c:3:12: error: 'counted_by' attribute cannot be applied to types
    3 |         int a[] [[clang::counted_by(n)]];
      | ^
1 error generated.
tavianator@graphene$ clang -v
clang version 20.1.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.1
Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1
Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0VU2P4zYM_TXMRbAhU_5IDj54Z-q213bvgSwztgpFSiU5M-mvLxRnMtnuTrHFooEAM-bHe3y0aRmCnixRC9UnqJ43comz822UZy2tjM5vBjdekvfzTGx0KkD1DLidYzwFEB1gD9grI-2UG3M-5s5PgP01EPsuRq-HJdJvdCBPVlE-x6MBFMotNtKYDZfswXQ-s4sxWdB_rTfuxs0DuGPKSH1kcZaRQc1v2fvhAjVnswxMsicUTL5Bs3CxUb4y-nPRZ2nIRuYOKfPa8acr9dSI6B5K4TbPc8BdarZ6hprnjP3iXuhMPsXy66n5epSzwRkC3r3LBiWfvDzNZAmwZEpGdnAuV8C7EP2irn8ZNJ-Ad-z20zYyC-Kft-Q6GvbvfO0722sFaN6MO-Ig_X9D3O_vKu73gFvA7deY6_kS82MdEnuWHdaZZM6ay12X9So6AaIrEETHyHuX9GaAzSNw8zBdJa11kQ3E5OlkNI0sOhYvJwq3pgSD5on9uKBrfqoF1U_Au2Klxyay5GWkMf-Oxs_Au9U8kw_aWYY8L_IaePdZ-oli6vZ1W-_rMjupzGi7vGaTXZJ_9iRHdnQjmRR1ckG_Au9-tSFKY2h81jet-iV4wH7QFnjXu8WOSaVRjzIS-_npiek1RUbt7Fcp2Kcnvzd6AOwnpQD7bxHCvqjyIi9-DKIuvxfkdzKkIo3_T_WnO_njYqJOzYuO5WnyJT_W5YchAm8xAh9JfljlvjQ2YyvGndjJDbVFU_FtXdRNtZlbKrZEWJS8VGLAGmVDgordDmlLqtzhRrfIseI1VkWJTYV5MR6UGKgWw7DbHg47KDkdpTb3hbzRISzUFmXVFLgxciATrgsf0dILu3oBMe1_36akbFimACU3OsTwXibqaKh9f0seXr4l0MhedJy_uXw3izftl5-MScd5GXLljmlW5vx2yU7e_UEqAvZXXukzciN-bvHvAAAA__9HJA3B">