fix the compile bug for gcc