34 #include "llvm/Support/CommandLine.h"
36 #include "clang/Frontend/CompilerInstance.h"
37 #include "clang/Frontend/FrontendActions.h"
38 #include "clang/Tooling/CompilationDatabase.h"
39 #include "clang/Tooling/Tooling.h"
41 #include "llvm/Support/PrettyStackTrace.h"
43 #include <google/protobuf/text_format.h>
45 using namespace clang::tooling;
47 using namespace tesla;
54 cl::desc(
"<output file>"),
59 cl::desc(
"<source0> [... <sourceN>]"),
63 int main(
int argc,
const char **argv) {
64 llvm::PrettyStackTraceProgram X(argc, argv);
67 std::vector<const char*> args(argv, argv + argc);
69 args.push_back(
"__TESLA_ANALYSER__");
74 argc = (int) args.size();
75 assert(((
size_t) argc) == args.size());
79 OwningPtr<CompilationDatabase> Compilations(
80 FixedCompilationDatabase::loadFromCommandLine(argc, argv));
84 "Need compilation options, e.g. tesla-analyser foo.c -- -I ../include");
86 cl::ParseCommandLineOptions(argc, argv);
91 return Tool.run(Factory.get());