[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

Reply via email to