Marc-André Lureau <marcandre.lur...@redhat.com> writes: > Hi > > ----- Original Message ----- >> Marc-André Lureau <marcandre.lur...@redhat.com> writes: >> >> > They are not considered constant expressions in C, producing an error >> > when compiling a const QLit. >> >> A const QLit? Do you mean a non-const one? > > Really a const QLitObject: > > > const QLitObject qmp_schema_qlit = QLIT_QLIST(((QLitObject[]) { > QLIT_QNULL, > {} > })); > > qmp-introspect.c:17:63: error: initializer element is not constant > const QLitObject qmp_schema_qlit = QLIT_QLIST(((QLitObject[]) { > ^ > Removing the "compound literals" fixes this error.
Does QLIT_QLIST(((const QLitObject[]) { ... } work? > We may want to include it in the commit message, but I think it lacks a bit > of "C standard" explanation. I think it is something like "compound literals" > are not const. But then why does it work with (QLitObject[]) ? :)