>>>>> "Dale" == Dale Johannesen <[EMAIL PROTECTED]> writes:
Dale> On May 4, 2005, at 5:06 AM, Gabriel Dos Reis wrote: >> Andrew Haley <[EMAIL PROTECTED]> writes: >> >> | Nathan Sidwell writes: | > Dale Johannesen wrote: >> | > >> | > > And we don't have to document the behavior at all; it is not >> documented | > > now. | > I disagree. It's not documented >> explicitly in gcc now, because it is doing | > what the std >> permits, and so documented there. We should document either >> | > >> | > a) that current gcc is not breaking the std, and Mike's >> example is invalid | > code, if one expects a volatile read. This >> would be a FAQ like thing. Dale> Both behaviors are standard-compliant. Treating a reference as Dale> volatile when you don't have to just means strictly following Dale> the rules of the abstract machine; it can never break anything. >> I vote for (a). >> >> [...] >> >> | This is a bad extension to gcc and will cause much trouble, just >> like | the old guarantee to preserve empty loops. Dale> I see a difference between a documented extension, and quietly Dale> choosing from among standard-compliant behaviors the one which Dale> is most convenient for users. I agree, but I would put it more strongly -- choose the interpretation which (a) satisfies the principle of least astonishment, (b) matches previous version behavior, and (c) will keep existing user code working rather than breaking it in hard to debug ways. paul