Title
Data races and common initial sequence
Status
open
Section
6.7.1 [intro.memory]
Submitter
Faisal Vali

Created on 2014-06-23.00:00:00 last changed 119 months ago

Messages

Date: 2014-06-23.00:00:00

According to 6.7.1 [intro.memory] paragraph 3,

A memory location is either an object of scalar type or a maximal sequence of adjacent bit-fields all having non-zero width. [Note: Various features of the language, such as references and virtual functions, might involve additional memory locations that are not accessible to programs but are managed by the implementation. —end note] Two or more threads of execution (6.9.2 [intro.multithread]) can update and access separate memory locations without interfering with each other.

It is not clear how this relates to the permission granted in 11.4 [class.mem] paragraph 18 to inspect the common initial sequence of standard-layout structs that are members of a standard-layout union. If one thread is writing to the common initial sequence and another is reading from it via a different struct, that should constitute a data race, but the current wording does not clearly state that.

History
Date User Action Args
2014-06-23 00:00:00admincreate