control reaches end of non-void function