warning: 'val' may be used uninitialized in this function [-Wmaybe-uninitialized]