int foo() {
bar();
{
 static int si = 123;
  return si;
}
}
みたいなC++の関数があるとして、si用のメモリが123に初期化されるのは
どのタイミングでしょうか?

1 プログラムが実行開始した瞬間
2 main関数到達前
3 foo関数初回呼び出し直後
4 変数siの存在するブロックに初回に入ろうとする時

くらいの候補があると思うのですが。手持ちのコンパイラでは1でしたが、
標準で保障されているのがどこまでかが知りたいです。