Re: [PATCH][2.6.8-rc1-mm1] drivers/scsi/sg.c gcc341 inlining fix

Andrew Morton
2004-07-14T23:55:03Z

Jeff Garzik <jgarzik@pobox.com> wrote:
>
> Andrew Morton wrote:
> > Yeah, but doing:
> >
> > static inline foo(void);
> >
> > bar()
> > {
> > ...
> > foo();
> > }
> >
> > static inline foo(void)
> > {
> > ...
> > }
> >
> > is pretty dumb too. I don't see any harm if this compiler feature/problem
> > pushes us to fix the above in the obvious way.
>
>
> ??? C does not require ordering of function _implementations_, except
> for this gcc brokenness.

Well. Other compilers had that restriction iirc, and it's a pretty natural
thing to do.

> The above example allows one to do what one normally does with
> non-inlines: order code to enhance readability

I always expect to find those little helper functions earlier in the
compilation unit than their callsites. Pascal-style. Plus you don't have
the hassle of keeping the declaration and definition in sync.