Die Variable bleibt gültig im gesamten Block, der durch die geschweiften Klammern eingeschlossen ist. Also solange die test() nicht endgültig verlassen wurde. Der unterfunktion()-Aufruf ändert nichts daran.