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
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
invokes or resumes a coroutine ([expr.await]
subsequent to the previous suspension (if any) and
prior to the next suspension (if any)
are considered to occur within F.