David Laight wrote:
> I don't believe there is a problem using m[0], just m[non-constant-expr].

Practically speaking, m[0] is not a problem but the standard says

... to the structure member (designated by member-designator), ...
                     ^^^^^^

> OTOH 'sizeof (s *)0->m[0]' might be deemed invalid (because it has
> an inferred dereference of NULL.

Oh yes. I can change it to:

extern void *foo(void);

and then sizeof(((s *)foo())->m[0]) but NULL should work too.

So, if we reached a consensus on this, where should I add the macro?

Alex

Reply via email to