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

    <tr>
        <th>Summary</th>
        <td>
            `__builtin_dynamic_object_size` does not report size of function argument VLAs
        </td>
    </tr>

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

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

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

<pre>
    For function argument VLAs, GCC correctly reports the expected size. Clang seems unaware:

```
#include <stdio.h>

void __attribute__((noinline))
foo(int n, short array[n])
{
 printf("%zu\n", __builtin_dynamic_object_size(array, 1));
}

int main(void)
{
        short array[10];

        foo(10, array);
 return 0;
}
```


```
$ gcc -Wall -O2 -o fvla-gcc fvla.c && ./fvla-gcc
20
$ clang -Wall -O2 -o fvla-clang fvla.c && ./fvla-clang
18446744073709551615
```

@bwendling 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8U0HPozYQ_TXDZRRkDxjIgUNCml4q9dYekTGGuHXsyDb5mv31FYTV9lN3F42E5Rm_98aeJ2M0s9O6BXEGccnkkm4-tH9rHbPBj6_26gNOi1PJeIcyzMtdu4R__HaKQB3-2nWofAhaJfvCoB8-pIjpplH_89Aq6RGj-aJz7Kx0M0at7xEXJz9k0FCcgG1RsT3YCagwTtll1AhFF9NofH6D4pd35dObEftephTMsCTd90ANUOO8cdY4DXRcg50m74Ea4xK6VWa8-ZBQhiBfIM4OxOVdBvUZ2Akfwbg0bVAEJL4sIDq3rTvs-2ExNhnXjy8n70b1fvhLq9SvfQE1b1DqkO_kxXkDvrwVrxLu0jigZhX_iXb_PovjbFX3BvlW8-6Hs5VoZ9yZMOi0BIfsE_F_b_Q7d1zirBQe_pTW4uF3woPH6WnlYd1dF7lCoAqowhzo-jUF7ERfz6vtPf-P8N7_AcaWBHbiTVlWdVmyuqjZUQhecfEd1SUbPrQbrXEzZmNbjMfiKDPd8loUDVVMVNmtVYyqWk9HXqpGSCmVZhNvGnFU41jxSWamJUaC1XQkLkpe5bJumrosOJW8GHmloWT6Lo3NrX3ecx_mzMS46JYLTiXLrBy0jZs_iJz-wC27Toe4ZKFdDx2GZY5QMmtiit9gkklWt1Cxn89QxXD0OqLzaXfQ5hn00w-Mly3BtreUHnG1EF2BrrNJt2XIlb8DXVcB--_wCH5lArpusiPQde_r2dK_AQAA__9_FDDA">