variable may be used uninitialized in this function