Re: {put,get}_user() side effects

From: Xavier Bestel
Date: Tue Apr 06 2004 - 07:01:06 EST


On Tue, 2004-04-06 at 13:32 +0200, Andi Kleen wrote:
> Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> writes:
>
> > On most (all?) architectures {get,put}_user() has side effects:
> >
> > #define put_user(x,ptr) \
> > __put_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
>
> Neither typeof not sizeof are supposed to have side effects. If your
> compiler generates them that's a compiler bug.

Using ptr three times in a define has side effects if ptr is an
expression with side effects (e.g. "p++").

Xav

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