On Thu, Jan 05, 2023 at 02:18:47PM +0100, David Demelier wrote:
> On Thu, 2023-01-05 at 13:59 +0100, Claudio Jeker wrote:
> > On Thu, Jan 05, 2023 at 11:09:57AM +0100, Theo Buehler wrote:
> > > On Thu, Jan 05, 2023 at 11:03:04AM +0100, Claudio Jeker wrote:
> > > > gcc4 does not really support C99 initalizers. It works most of
> > > > the time
> > > > but fails for more complex structs. Just fall back to memset()
> > > > here.
> > > 
> > > deraadt used { {0} } in kr_send_dependon(). Apparently that works.
> > > I really don't understand why we can't use a 24 years old standard.
> > 
> > It is very annoying. Would be nice if our gcc would allow it since
> > c99
> > initalizers are a good thing. Not sure I like the { { 0 } } fix.
> > Another
> 
> Also note that = {0} is available since C89, it's only C99 that
> introduced designators (e.g. { .foo = 0 }) so there is no reason why
> GCC/clang should not accept that unless there is a bug.
> 
> https://godbolt.org/z/6eMWdEEaP
> 

The problem here is that in C89 you can't use = { 0 } for a struct that is
defined like:
        struct foo {
                struct bar {
                        int x;
                } a;
                int b;
        };

{ 0 } is somewhat special in C99 since it works independent of object.

-- 
:wq Claudio

Reply via email to