fixed compatibility with GCC