Re: 2.4.9 does not compile [PATCH]

Daniel Phillips (phillips@bonn-fries.net)
Fri, 17 Aug 2001 04:05:46 +0200


On August 17, 2001 03:49 am, Andrew Morton wrote:
> Anton Altaparmakov wrote:
> >
> > #define min(x,y) \
> > ({ typeof(x) __x = (x); typeof(y) __y = (y); __x < __y ? __x :
__y; })
> >
> > int test(int a, int b, int c)
> > {
> > return min(a, min(b, c));
> > }
>
> Problems occur if the caller happens to pass in variables whose
> names confilct with the ones you chose in the above macro:

I remember the thread in detail. We must have similar scoping problems in
innumerable macros. I'd a braindead flaw in C's scoping rules, and you know,
I don't think it matters. Don't use local variables with names like __foo.

--
Daniel
-
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/