... and class member initializers.
They must be evaluated in the context where default argument is actually
used during a call, not in a parameter list where default argument is specified.
We end up moving the evaluation to codegen stage. It would be nice to do
evaluation during semantic analysis, but that would imply that
CXXDefaultArgExpr will need to store an expression different from
ParmVarDecl::getDefaultArgument(). This would have its performance costs
and is much more complex than the current approach.
One theoretical drawback is that we will delay errors that happen during evaluation
of source_location::current calls. This should not happen in practice as calls to
std::source_location::current() will always succeed in conforming implementations.
Fixes #56379.