fix on clang/gcc