add clang support