Open frederick-vs-ja opened 1 week ago
Well, the real question is if those hidden memory locations can participate in data races. I think the note wants to say "yes".
Well, the real question is if those hidden memory locations can participate in data races. I think the note wants to say "yes".
I think the answer should be "yes" too.
However, the standard wording doesn't recognize any operation as reading or modification of such memory locations, even if the operation is undefined and/or does modify some implemention-managed memory location in the view of the implementation. So I still wonder whether it's helpful to attempt to harmonize the meanings of memory location of the standard and implementations, given when the affected memory regions are implementation-controlled, an implementation may (and possibly need to) consider more cases to be conflicting.
Currently a note in [intro.memory] (originally introduced by N2429) says:
This note seemingly implies that such underlying implementation details are scalar objects or bit-field sequences (per the definition of memory location).
Such implication looks weird despite not being actual overspecification. If this note is considered not really helpful (because such a "memory location" isn't supposed to be observable, perhaps), I guess we should remove it.