[cfe-dev] C++ and volatile lvalue-to-rvalue
Johannes Schaub
schaub.johannes at googlemail.com
Wed Oct 19 12:33:34 PDT 2011
Christopher Jefferson wrote:
>
> On 13 Oct 2011, at 12:43, Abramo Bagnara wrote:
>
>>
>> I want to put this gcc bug report to clang developer attention.
>>
>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50364
>>
>> The gcc developers believe that according to the standard
>>
>> volatile int v;
>> x = v = 3;
>>
>> does not imply necessarily a read from v.
>
> If you want to argue that this should both write to, and read from v, then
> I think you fall foul of lack of a sequence point, so the behaviour is
> undefined anyway.
>
As clarified by Abramo, the assignment and the read from v are sequenced.
However the following would be undefined behavior:
volatile int v = 0;
int x = v + v;
Note how "v + v" does two side effects on v, and these side effects are not
sequenced.
More information about the cfe-dev
mailing list