Hello,
I have a FTBFS package, audit, that has a strange problem that I'd like to run by the devel list. It is a common idiom in the kernel to do something like:
struct foo{ unsigned int barlen; char bar[]; };
There are about 80 instances of this in the kernel headers. When one of these headers is included by SWIG, it makes code like this:
if (arg2) { arg1->bar = (char [])(char *)memcpy(malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size)); } else { arg1->bar = 0; }
which results in
error: cast specifies array type
and
error: assignment to expression with array type.
Is this intended to be an error by gcc-12?
One fix is to change the struct decalaration to bar[0]; and gcc doesn't error out on that. But that will take some time to get in the upstream kernel. Just curious if this is intended by gcc or a problem of SWIG/kernel?
Thanks, -Steve