Cc: Christoph Lameter <clameter@...>, Paul Mackerras <paulus@...>, <heiko.carstens@...>, <horms@...>, Stefan Richter <stefanr@...>, Linux Kernel Mailing List <linux-kernel@...>, David Miller <davem@...>, Paul E. McKenney <paulmck@...>, Ilpo Järvinen <ilpo.jarvinen@...>, <ak@...>, <cfriesen@...>, <rpjday@...>, Netdev <netdev@...>, <jesper.juhl@...>, <linux-arch@...>, <zlynx@...>, Andrew Morton <akpm@...>, <schwidefsky@...>, Chris Snook <csnook@...>, Herbert Xu <herbert@...>, Linus Torvalds <torvalds@...>, <wensong@...>, <wjiang@...>
>>>> The "asm volatile" implementation does have exactly the same
And exactly the same is true for the "asm" version.
Sure you can do that. I don't though.
That's nonsense. GCC can extend the C standard any way they
bloody well please -- witness the fact that they added an
extra class of side effects...
The _end of a full expression_ is a sequence point, not every
expression. And that is irrelevant here anyway.
It is perfectly fine to compute x+y any time before the
assignment; the C compiler is allowed to compute it _after_
the assignment even, if it could figure out how ;-)
x+y does not contain a side effect, you know.
s/could/does/
There's nothing wrong there.
If you find any problems/shortcomings in the GCC documentation,
please file a PR, don't go whine on some unrelated mailing lists.
Thank you.
Yes, and? GCC promises the behaviour it has documented.
The documentation simply doesn't say "+m" is allowed. The code to
allow it was added for the benefit of people who do not read the
documentation. Documentation for "+m" might get added later if it
is decided this [the code, not the documentation] is a sane thing
to have (which isn't directly obvious).
If you're talking details, you better get them right. Handwaving is
fine with me as long as you're not purporting you're not.
And I simply cannot stand false assertions.
You can always ignore me if _you_ take issue with _that_ :-)
Segher
-