but emits a warning if this union { char *s; long l; } u; u.l = (long)0; is followed by a declaration.
In C99 this is allowed - gcc3 is C90. -- Helmut Karlowski