28 #ifndef LLVM_CLANG_TOOLING_EXECUTION_H 29 #define LLVM_CLANG_TOOLING_EXECUTION_H 33 #include "llvm/Support/Error.h" 34 #include "llvm/Support/Registry.h" 35 #include "llvm/Support/StringSaver.h" 51 virtual std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
54 llvm::function_ref<
void(StringRef Key, StringRef Value)> Callback) = 0;
64 std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
66 void forEachResult(llvm::function_ref<
void(StringRef Key, StringRef Value)>
70 llvm::BumpPtrAllocator Arena;
71 llvm::UniqueStringSaver Strings;
73 std::vector<std::pair<llvm::StringRef, llvm::StringRef>> KVResults;
86 void reportResult(StringRef Key, StringRef
Value);
117 virtual StringRef getExecutorName()
const = 0;
124 virtual bool isSingleProcess()
const = 0;
133 llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action);
135 llvm::Error execute(std::unique_ptr<FrontendActionFactory> Action,
154 virtual void mapVirtualFile(StringRef FilePath, StringRef Content) = 0;
182 const char *Overview =
nullptr);
187 llvm::cl::OptionCategory &Category,
188 const char *Overview =
nullptr);
194 #endif // LLVM_CLANG_TOOLING_EXECUTION_H virtual std::string getRevision()
ExecutionContext(ToolResults *Results)
Initializes a context. This does not take ownership of Results.
The context of an execution, including the information about compilation and results.
virtual std::string getCurrentCompilationUnit()
Dataflow Directional Tag Classes.
std::unique_ptr< DiagnosticConsumer > create(StringRef OutputFile, DiagnosticOptions *Diags, bool MergeChildRecords=false)
Returns a DiagnosticConsumer that serializes diagnostics to a bitcode file.
virtual ~ExecutionContext()
virtual std::string getCorpus()