Created on2014-06-18.00:00:00 last changed109 months ago
[Moved to DR at the October, 2015 meeting.]
Proposed resolution (May, 2015):
Change 6.10.1 [intro.execution] paragraph 13 as follows:
Sequenced before is an asymmetric, transitive,pair-wise relation between evaluations executed by a singlethread (6.10.2 [intro.multithread]), which induces a partialorder among those evaluations. Given any twoevaluationsA andB, ifA is sequencedbeforeB(or, equivalently,Bissequenced afterA), then the executionofA shall precede the executionofB. IfA is not sequenced beforeB...
Change 6.10.2 [intro.multithread] paragraph 14 as follows:
An evaluationAhappens before anevaluationB(or,equivalently,Bhappens afterA)if:...
Change 6.10.1 [intro.execution] paragraph 15 as follows:
...Every evaluation in the calling function (including otherfunction calls) that is not otherwise specifically sequencedbefore or after the execution of the body of the calledfunction is indeterminately sequenced with respect to theexecution of the called functionFor each functioninvocationF, for every evaluationA that occurswithinF and every evaluationB that does not occurwithinF but is evaluated on the same thread and as partof the same signal handler (if any), eitherA issequenced beforeB orB is sequenced beforeA.9[Note: ifA andB would not otherwise be sequenced then they areindeterminately sequenced. —end note]Several contexts...
Change 6.10.3.2 [basic.start.static] paragraph 4 as follows:
It is implementation-defined whether the dynamicinitialization of a non-local variable with static storagedurationis donehappens before thefirst statement ofmain. If the initialization isdeferred tosome point in timehappenafter the first statement ofmain, itshalloccurhappens before the first odr-use(6.3 [basic.def.odr]) of any function or variable...
Change 6.10.3.2 [basic.start.static] paragraph 5 as follows:
It is implementation-defined whether the dynamicinitialization of a non-local variable with static or threadstorage duration isdonesequencedbefore the first statement of the initial function of thethread. If the initialization is deferred to some point intimesequenced after the first statement of theinitial function of the thread, itshalloccuris sequenced before the first odr-use(6.3 [basic.def.odr]) of any variable with threadstorage duration defined in the same translation unit as thevariable to be initialized.
Change 8.6.4 [stmt.for] paragraph 1 as follows:
...[Note: Thus the first statement specifiesinitialization for the loop; the condition(8.5 [stmt.select]) specifies atest,madesequenced before eachiteration, such that the loop is exited when the conditionbecomesfalse; the expression often specifiesincrementing that isdonesequencedafter each iteration. —end note]
Add the following as a new paragraph at the end ofClause 14 [except]:
In this section, “before” and “after”refer to the “sequenced before” relation(6.10.1 [intro.execution]).
The term “sequenced after” is used in both the core andlibrary clauses instead of the more-correct “sequencedbefore.”
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2017-02-06 00:00:00 | admin | set | status: dr -> cd4 |
| 2015-11-10 00:00:00 | admin | set | messages: +msg6062 |
| 2015-11-10 00:00:00 | admin | set | status: ready -> dr |
| 2015-05-25 00:00:00 | admin | set | messages: +msg5442 |
| 2015-05-25 00:00:00 | admin | set | status: drafting -> ready |
| 2014-06-18 00:00:00 | admin | create | |