Se n == 0, ritorna testa. Ma se n != 0? Cosa ritorna la tua funzione?
Credo che il compilatore dovrebbe darti un "warning: missing return in function returning non-void", il che significa che manca il return in una funzione che deve ritornare un valore.