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