Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures
From: Segher Boessenkool <hidden>
Date: 2007-08-16 21:02:30
Also in:
lkml, netdev
From: Segher Boessenkool <hidden>
Date: 2007-08-16 21:02:30
Also in:
lkml, netdev
Here, I should obviously admit that the semantics of *(volatile int *)& aren't any neater or well-defined in the _language standard_ at all. The standard does say (verbatim) "precisely what constitutes as access to object of volatile-qualified type is implementation-defined", but GCC does help us out here by doing the right thing.
Where do you get that idea? GCC manual, section 6.1, "When is a Volatile Object Accessed?" doesn't say anything of the kind. PR33053 and some others.
Honestly, given such confusion, and the propensity of the "volatile" type-qualifier keyword to be ill-defined (or at least poorly understood, often inconsistently implemented), I'd (again) express my opinion that it would be best to avoid its usage, given other alternatives do exist.
Yeah. Or we can have an email thread like this every time someone proposes a patch that uses an atomic variable ;-) Segher