Re: [PATCH] 2.4.21-rc1: byteorder.h breaks with __STRICT_ANSI__ defined (trivial)

David S. Miller
2003-11-06T20:11:08Z

On Thu, 06 Nov 2003 22:09:29 +0200
Martin Schlemmer <azarah@gentoo.org> wrote:

> On Thu, 2003-11-06 at 21:37, David S. Miller wrote:
> > Let's say that you end up using some inline function
> > that takes u32 arguments, and internally it uses
> > u64 types to speed up the calculation or make it more
> > accurate or something like that.
>
> So basically only in cases where the stuff in byteorder.h
> was not inlined ... ?

No, exactly in the cases where it _IS_ inlined. Imagine
this:

static inline u32 swab_foo(u32 a, u32 b)
{
u64 tmp = ((u64)a<<32) | ((u64)b);
u32 retval;

retval = compute(tmp);

return retval;
}

If that's in a kernel header somewhere, and you build with -ansi,
you lose.