clang compatible