Re: [PATCH] 2.5.21 - list.h cleanup

From: Gerrit Huizenga (gh@us.ibm.com)
Date: Wed Jun 12 2002 - 12:30:55 EST


In message <E17Hz8A-0003oC-00@wagner.rustcorp.com.au>, > : Rusty Russell writes
:
> In message <E17HpqG-000454-00@w-gerrit2> you write:
> > In message <Pine.LNX.4.44.0206110128130.1987-100000@home.transmeta.com>, > :
> Li
> > nus Torvalds writes:
> > >
> > >
> > > On Tue, 11 Jun 2002, Rusty Russell wrote:
> > > >
> > > > Worst sin is that you can't predeclare typedefs. For many uses (not the
> > > > list macros of course):
> > > > struct xx;
> > > > is sufficient and avoids the #include hell,
> > >
> > > True.
> >
> > Untrue. Or partially true (yes, you *can* use struct xx;).
> >
> > But you can also use:
> >
> > typedef foo_t;
>
> Huh? In what language? Try it with -Wall to see what you're really
> doing here, and think about what happens when you put that in one
> header, and the real typedef in another.

I sit corrected. Synapse must have misfired. The only references
I see to incomplete typedefs in our code or in the ANSI spec are
related to:

typedef struct foo foo_t;

No, we didn't use gcc for our kernel but it was an ANSI compiler.
My test didn't use -Wall for gcc, duh...

I was thinking that incomplete typedefs would be okay as long as you
only used them in prototypes, but only struct */union * pointers
are guaranteed to be compatible, not int */struct * pointer, so
this couldn't have been of any use.

I'll be sure to consume one extra beer this weekend to kill off that
bad synapse.

gerrit
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jun 15 2002 - 22:00:25 EST