[PATCH v4] test/argparse: change initialization to workaround LTO

Thomas Monjalon thomas at monjalon.net
Thu Oct 23 21:09:26 CEST 2025


09/09/2025 15:49, Stephen Hemminger:
> When compiled with Link Time Optimization, the existing code
> generated an error, because the compiler was unable to intuit
> that there was space in the flexible array.
> 
> In function ‘test_argparse_copy’,
>     inlined from ‘test_argparse_init_obj’ at ../app/test/test_argparse.c:108:2,
>     inlined from ‘test_argparse_opt_callback_parse_int_of_no_val’ at ../app/test/test_argparse.c:490:8:
> ../app/test/test_argparse.c:96:17: warning: ‘memcpy’ writing 56 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
>    96 |                 memcpy(&dst->args[i], &src->args[i], sizeof(src->args[i]));
> 
> Initializing a structure with flexible array is special case
> and compiler expands the structure to fit. But inside the copy
> function it no longer knew that.
> 
> The workaround is to put the copy inside the same function
> and use structure assignment. Also macro should be upper case.
> 
> Fixes: 6c5c6571601c ("argparse: verify argument config")
> Acked-by: Chengwen Feng <fengchengwen at huawei.com>
> Acked-by: Bruce Richardson <bruce.richardson at intel.com>
> 
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>

Cc stable

Applied, thanks.





More information about the dev mailing list