// // Copyright rev.ng Srls. See LICENSE.md for details. // #include #include "clang/Tooling/Tooling.h" #include "revng-c/ThreadSafeClangTooling/ThreadSafeClangTooling.h" namespace revng { namespace c { const std::vector ClangToolDefaultArgs{ // C language "-xc", // C11 dialect "-std=c11" }; } // namespace c } // namespace revng std::mutex ClangToolingMutex; bool runThreadSafeClangTool(std::unique_ptr ToolAction, const std::string &Code, const std::vector &Args) { std::scoped_lock ClangToolingGuard{ ClangToolingMutex }; return clang::tooling::runToolOnCodeWithArgs(std::move(ToolAction), Code, Args); } bool runThreadSafeClangTool(std::unique_ptr ToolAction, const std::string &Code) { return runThreadSafeClangTool(std::move(ToolAction), Code, revng::c::ClangToolDefaultArgs); }