clang compatibility