works with clang