Full name of submitter (unless configured in github; will be published with the issue): Jim X
[intro.races] p13:
A visible side effect A on a scalar object or bit-field M with respect to a value computation B of M satisfies the conditions:
[...]
The value of a non-atomic scalar object or bit-field M, as determined by evaluation B, shall be the value stored by the visible side effect A.
The literal meaning of "scalar object" presumably refers to that an object of scalar type, where the scalar type is defined in [basic.types.general] p9. So, what does "non-atomic scalar object" mean here? In other words, the opposite of a "non-atomic scalar object" is an "atomic scalar object", however, atomic is a class template, that is, any specialization of it is a class type, as per [atomics.types.generic], an object of type atomic<T> where T is a scalar type is not a scalar object.
Full name of submitter (unless configured in github; will be published with the issue): Jim X
[intro.races] p13:
The literal meaning of "scalar object" presumably refers to that an object of scalar type, where the scalar type is defined in [basic.types.general] p9. So, what does "non-atomic scalar object" mean here? In other words, the opposite of a "non-atomic scalar object" is an "atomic scalar object", however, atomic is a class template, that is, any specialization of it is a class type, as per [atomics.types.generic], an object of type
atomic<T>
where T is a scalar type is not a scalar object.