int avail; int main() { while (*(volatile int *)&avail == 0) continue; return 0; }
Ok, so, the question is, should gcc produce code that infinitely loops, or should it be obligated to actually fetch from memory? Hint, 3.3 fetched.
I get:
L6: b L6
on mainline and 4.0.