https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109828
--- Comment #7 from Yann Droneaud <yann at droneaud dot fr> --- I've also experimented compound literal initialization at block level instead of file level. Except in case it's not supported, it shows the same issue at block level as file level. https://godbolt.org/z/vn5Pn7hTx Unrelated, I've noted it's not possible to initialize the flexible array if the initializer is not having a static storage. I would have expected this restriction to be lifted by now.