Title
Defect in atomic wording
Status
nad editorial
Section
[atomics.types.operations]
Submitter
Anthony Williams

Created on 2008-07-10.00:00:00 last changed 168 months ago

Messages

Date: 2011-03-05.00:04:13

Rationale:

Already fixed by the time the LWG processed it.

Date: 2010-10-21.18:28:33

Proposed resolution:

Change [atomics.types.operations]/p9:

C atomic_load(const volatile A * object);
C atomic_load_explicit(const volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) const volatile;

Requires: The order argument shall not be memory_order_acquire memory_order_release nor memory_order_acq_rel.

Change [atomics.types.operations]/p17:

... When only one memory_order argument is supplied, the value of success is order, and the value of failure is order except that a value of memory_order_acq_rel shall be replaced by the value memory_order_require memory_order_acquire ...

Date: 2008-07-10.00:00:00

There's an error in [atomics.types.operations]/p9:

C atomic_load(const volatile A * object);
C atomic_load_explicit(const volatile A * object, memory_order);
C A ::load(memory_order order = memory_order_seq_cst) const volatile;

Requires: The order argument shall not be memory_order_acquire nor memory_order_acq_rel.

I believe that this should state

shall not be memory_order_release.

There's also an error in [atomics.types.operations]/p17:

... When only one memory_order argument is supplied, the value of success is order, and the value of failure is order except that a value of memory_order_acq_rel shall be replaced by the value memory_order_require ...

I believe this should state

shall be replaced by the value memory_order_acquire ...

History
Date User Action Args
2011-03-05 00:04:13adminsetmessages: + msg5591
2010-10-21 18:28:33adminsetmessages: + msg4110
2008-07-10 00:00:00admincreate