When invoking a function (whether or not the function is inline),
every argument expression and
the postfix expression designating the called function
are sequenced before every expression or statement
in the body of the called function
. For each function invocation or
evaluation of an
await-expression F,
each evaluation that does not occur within
F but
is evaluated on the same thread and as part of the same signal handler (if any)
is either sequenced before all evaluations that occur within
F
or sequenced after all evaluations that occur within
F;
if
F invokes or resumes a coroutine (
[expr.await]),
only evaluations
subsequent to the previous suspension (if any) and
prior to the next suspension (if any)
are considered to occur within
F.