[EMAIL PROTECTED] (Kai Henningsen) writes:
| [EMAIL PROTECTED] (Nathan Sidwell) wrote on 03.05.05 in <[EMAIL PROTECTED]>:
|
| > Mike Stump wrote:
| > > 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 beleive the compiler is so licensed. [5.1.2.3/2] talks about accessing
| > a volatile object. If the compiled can determine the actual object
| > being accessed through a series of pointer and volatile cast conversions,
| > then I see nothing in the std saying it must behave as-if the object
| > were volatile when it is not.
| >
| > This, of course, might not be useful to users :)
|
| As a QOI issue, it would be nice if such a situation caused a warning
| ("ignoring volatile cast ..." or something like that).
such a warning is fine by me. Any one care to submit a patch?
-- Gaby