|
5674 | 5674 | \end{example}
|
5675 | 5675 |
|
5676 | 5676 | \pnum
|
5677 |
| -When calling a function (whether or not the function is inline), every |
5678 |
| -\indextext{value computation}% |
5679 |
| -value computation and |
5680 |
| -\indextext{side effects}% |
5681 |
| -side effect associated with any argument |
5682 |
| -expression, or with the postfix expression designating the called |
5683 |
| -function, is sequenced before execution of every expression or statement |
| 5677 | +When invoking a function (whether or not the function is inline), |
| 5678 | +every argument expression and |
| 5679 | +the postfix expression designating the called function |
| 5680 | +are sequenced before every expression or statement |
5684 | 5681 | in the body of the called function.
|
5685 |
| -For each function invocation \placeholder{F}, |
5686 |
| -for every evaluation \placeholder{A} that occurs within \placeholder{F} and |
5687 |
| -every evaluation \placeholder{B} that does not occur within \placeholder{F} but |
5688 |
| -is evaluated on the same thread and as part of the same signal handler (if any), |
5689 |
| -either \placeholder{A} is sequenced before \placeholder{B} or |
5690 |
| -\placeholder{B} is sequenced before \placeholder{A}. |
| 5682 | +For each function invocation or |
| 5683 | +evaluation of an \grammarterm{await-expression} \placeholder{F}, |
| 5684 | +each evaluation that does not occur within \placeholder{F} but |
| 5685 | +is evaluated on the same thread and as part of the same signal handler (if any) |
| 5686 | +is either sequenced before all evaluations that occur within \placeholder{F} |
| 5687 | +or sequenced after all evaluations that occur within \placeholder{F}; |
5691 | 5688 | \begin{footnote}
|
5692 | 5689 | In other words,
|
5693 | 5690 | function executions do not interleave with each other.
|
5694 | 5691 | \end{footnote}
|
| 5692 | +if \placeholder{F} invokes or resumes a coroutine\iref{expr.await}, |
| 5693 | +only evaluations |
| 5694 | +subsequent to the previous suspension (if any) and |
| 5695 | +prior to the next suspension (if any) |
| 5696 | +are considered to occur within \placeholder{F}. |
5695 | 5697 | \begin{note}
|
5696 | 5698 | If \placeholder{A} and \placeholder{B} would not otherwise be sequenced then they are
|
5697 | 5699 | indeterminately sequenced.
|
|
0 commit comments