This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115e. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-11-11
According to 6.9.2 [intro.multithread] paragraph 9,
An evaluation A carries a dependency to an evaluation B if
the value of A is used as an operand of B, unless:
...
A is the left operand of a built-in logical AND (&&, see 7.6.14 [expr.log.and]) or logical OR (||, see 7.6.15 [expr.log.or]) operator, or
...
The intent is that this does not apply to the second operands of such operators if the first operand is such that they are not evaluated, but the wording is not clear to that effect. (A similar question applies to the non-selected operand of the conditional operator ?:.)
Notes from the October, 2015 meeting:
It appears likely that the text involved will be removed by a revision to the memory_order_consume specification.
Notes from the February, 2016 meeting:
Action on this issue will be deferred until the specification for memory_order_consume is complete; it should not currently be used.