|
@@ -111,7 +111,6 @@ If the compiler can prove that do_something() does not store to the
|
|
|
variable a, then the compiler is within its rights transforming this to
|
|
|
the following::
|
|
|
|
|
|
- tmp = a;
|
|
|
if (a > 0)
|
|
|
for (;;)
|
|
|
do_something();
|
|
@@ -119,7 +118,7 @@ the following::
|
|
|
If you don't want the compiler to do this (and you probably don't), then
|
|
|
you should use something like the following::
|
|
|
|
|
|
- while (READ_ONCE(a) < 0)
|
|
|
+ while (READ_ONCE(a) > 0)
|
|
|
do_something();
|
|
|
|
|
|
Alternatively, you could place a barrier() call in the loop.
|