make compatible with clang compiler