Re: 2.6.1-mm5 versus gcc 3.5 snapshot

From: Linus Torvalds
Date: Thu Jan 22 2004 - 10:30:50 EST




On Wed, 21 Jan 2004, Richard Henderson wrote:
>
> You're reading that wrong way-round. It's "+m" and "=m"/"0" that's
> disallowed.

Ok, but...

> I.e. if you have matching constraints (or read-write
> constrants, which are exactly short-hand for matching constraints),
> then you *must* have a register alternative. I.e. you'll get this
> warning if you *only* allow memories.
>
> The problem is partially conceptual -- what in the world does
>
> "=m"(x) : "0"(y)

I agree about the latter one, but "+m" (which is what the kernel uses) has
well-defined meaning, and the compiler would be/is silly to complain about
it.

So your arguments fall down flat. If it was

"=m" (x) : "0" (y)

I'd agree with you, but that's not the code the compiler complains about.

Shorthand or not, the "+m" usage is (a) totally logical and (b)
historically allowed.

Please fix the compiler.

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