On Fri, 13 Jul 2018, Florian Weimer wrote: > I think ONCE_FLAG_INIT needs to be a compound literal, not an initializer, at > least that's how I read the standard (“which expands to a value that can be > used to initialize an object”). I think it has to be valid as a static initializer. Which means it can't be a compound literal, because standard C doesn't allow those in static initializers. (I read "value" as meaning "expansion of the macro" not "value of an object type".) -- Joseph S. Myers joseph@codesourcery.com